如何使用Findby声明具有不同ID的相同webelement?

时间:2013-04-11 07:23:49

标签: selenium-webdriver

例如,是否可以定义:

@FindBy(By.id("id1")By.id("form1:id1")) 公共WebElement按钮

那么具有“id1”或“form1:id1”的按钮应该可以正常工作吗?

3 个答案:

答案 0 :(得分:1)

您可以使用@FindBys注释,语法为:

@FindBys({@FindBy(id = "foo"),
           @FindBy(className = "bar")})

JavaDoc在此描述:

http://selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/support/FindBys.html

答案 1 :(得分:0)

那么, 使用你想要的东西,只要它有效

就我个人而言,我会使用@FindBy(By.id("id1")),但这只是一个选择点。

此外,使用两种不同的方法两次引用相同的元素没有任何附加值。它只会导致代码混乱

修改 据我了解你的评论,页面上有一些元素不断更改其ID。如果您需要引用此类元素,请尝试使用 xPath 例如,请参阅此xpath tutorial

我们的想法是,您将指向DOM中的某个位置而不是特定ID

答案 2 :(得分:0)

使用Xpath或CSS选择器来执行此操作。或者Java将ID名称存储在String中,然后您可以将其填入您的Id。