前言

主題可能訂得不好,但我想不到更好的主題名。
我上個月初到今天都在做網頁 APP 的測試,我抱持著不想狂寫代碼的心態,所以挑戰整體系統化。做法則是參考博客,一開始是用抄的,所以一知半解得很嚴重。不廢話,進主題。


正文

運用測試框架:selenium
使用代碼:Java
測試對象圖片:

每一張圖片都是一本書。

PageObject 的其中一個類

@FindBy(how = How.XPATH, using = "//*[@id=\"bookId-xxxxx\"]"
private WebElement xxxxxBook;

public void openBook() {
  xxxxxBook.click()
}

用例

public void test001() {
  Bookshelf bs = PageFactory.initElements(driver, Bookshelf.class);
  bs.openBook();
}

代碼的部分,我只能寫到這裡。


問題

我只知道這樣的基本用法,而我有好幾次寫錯上面的定位位置,但是在寫工廠生成的時候,他並不會報錯,直到我開始去使用那個物件的時候,他才回報錯誤,然後我的疑問也是這樣產生。第一次接觸的時候,我一直以為在工廠生成的時候,他就會去找那個物件,然後等待我呼叫。至於錯誤則是 selenium 在背後默默解決,沒引發程序崩潰的話,不會拋出錯誤。但事實上我去看過這部分源碼,看不太懂是第一點,第二點是我並沒有找到明確拋出錯誤的地方。

我想問的是到底物件定位是甚麼時候開始,工廠生成的時候?物件被使用的時候?

如果有人能告訴我答案,或者提示我能去看甚麼,或者該怎麼看,我會非常感謝。


↙↙↙阅读原文可查看相关链接,并与作者交流