例如,是否可以定義:如何使用Findby聲明不同的ID相同的webelement?
@FindBy(By.id("id1")
OR By.id("form1:id1"))
公共WebElement按鈕
因此具有或者 「ID1」 或按鈕 「Form1中:ID1」 應該正常工作?
例如,是否可以定義:如何使用Findby聲明不同的ID相同的webelement?
@FindBy(By.id("id1")
OR By.id("form1:id1"))
公共WebElement按鈕
因此具有或者 「ID1」 或按鈕 「Form1中:ID1」 應該正常工作?
好, 使用whathever你想,只要它的作品
個人而言,我會用@FindBy(By.id("id1"))
但它選擇的只是點。
此外,在使用兩種不同的方法引用同一元素兩次時沒有增加值。它只會導致你的代碼混亂
編輯 正如我理解你的評論,頁面上有不斷改變其ID的元素。如果您需要引用這些元素,嘗試使用XPATH例如見這個xpath tutorial
的想法是,你將指向DOM中的一些地方,而不是特定的ID
您可以使用@ FindBys註解,語法是:
@FindBys({@FindBy(id = "foo"),
@FindBy(className = "bar")})
的JavaDoc的這裏所描述的那樣:
http://selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/support/FindBys.html
使用Xpath或CSS選擇器來做到這一點。或Java將ID名稱存儲在字符串中,然後您可以將其填入您的ID。
感謝您的快速回復。 不知道你理解我的問題, 我需要聲明下一次顯示「id1」第一次「id2」(id1和id2是靜態的), 相同的對象,我的問題是可以聲明類似的, @FindBy(By.id(「id1」)|| By.id(「id2」))因此,相同的webelement適用於兩者。 – user2269197 2013-04-11 07:53:15
請參閱編輯。希望它有助於 – 2013-04-11 08:00:20
是的,如果id是動態的,最好用cssSelector或xpath獲取元素。 – e1che 2013-04-11 08:12:41