使用@FindBy查找WebElementS

时间:2014-10-02 12:31:45

标签: java selenium

我们有一个由“// input [contains(@ name,'smcNetwork')]”指定的元素列表。 我习惯于找到像

这样的元素
 @FindBy(xpath = "//*[id='myId']")  private WebElement myelement;

但是,根据主题我提到的xpath返回一个数组(或我猜的列表)我会做什么

List<WebElement> networks = driver.findElementsBy( xpath = "//input[contains(@name,'smcNetwork')]")

我想在FindBy中执行此操作,但它似乎不起作用:

@FindBy( xpath = "//input[contains(@name,'smcNetwork')]") private List<WebElement> networks;

但是返回null。你能以某种方式这样做吗?

2 个答案:

答案 0 :(得分:1)

你可以这样做。

@FindAll({@FindBy(xpath = "yourpath")})
public List<WebElement> networks;

答案 1 :(得分:0)

要使用@FindBy查找网络元素,可以使用以下代码段

@FindBy(xpath = "xpathValue")
private static WebElement xpathName;

在这里,您可以通过将访问级别设置为公共或私有/受保护来更改访问级别。

如果将其设为私有,则在该类中使用此定位器,并将通用方法定义为public。