0

我已经开始使用 Page factory,现在我需要在 @FindBy 中提供 xpath。如果有人可以就如何使用@Findby 在 xpath 中传递变量提供任何建议或参考,那就太好了。

我想用@Findby 注释替换的元素

for(i=1; i <= liElements.size(); i++) {
   WebElement linkElement = driver.findElement(By.xpath("//li[" + i + "]/div//a[contains(@class, 'btn-mini')]"));
   linkElement.click(); 
}

非常感谢您的帮助。

4

1 回答 1

2

关于您关于参数化 FindBy 的问题 - 这是不可能的,因为注释是常量值。看看这里 -可以在运行时确定注释变量吗?

在这种特殊情况下,您可以在 FindBy 中找到元素列表:

@FindBy(xpath = "//li/div//a[contains(@class, 'btn-mini')]")
private List<WebElement> links;

然后你可以像这样遍历它们:

for(WebElement link : links) {
    link.click(); 
}

因此,您将一一单击该 xPath 找到的链接。

于 2016-11-04T14:15:39.120 回答