我在页面上有多个元素,我想使用PageFactory初始化它们。
我尝试使用以下
@FindBy(xpath = "//*[contains(@class,'x-grid-tree-node-leaf')]")
List<WebElement> allElements;
但这只返回一个元素。
现在,如果我使用传统的方式来寻找元素
List<WebElement> allElements = driver.findElements(By.xpath("//*[contains(@class,'x-grid-tree-node-leaf')]"));
这会返回4个元素
任何指针可能是什么问题?
答案 0 :(得分:1)
使用 FindAll 注释获取系列@FindBy标记,并搜索符合任何FindBy标准的所有元素。
@FindAll(@FindBy(how = How.XPATH, using = "//*[contains(@class,'x-grid-tree-node-leaf')]"))
List<WebElement> allElements;
答案 1 :(得分:1)
@FindBy(xpath = "//*[contains(@class,'x-grid-tree-node-leaf')]")
List<WebElement> allElements;
这是有效的。我的代码中有错误。
答案 2 :(得分:0)
使用@FindAllBy注释,而不是使用@FindBy注释。试试这个!
@FindAllBy(xpath = "//*[contains(@class,'x-grid-tree-node-leaf')]")
List<WebElement> allElements;
这里是FindAllBy java类的link。
答案 3 :(得分:-1)
您是否尝试在Chrome开发者工具或Firebug中运行xpath?
List<WebElement> allElements = driver.findElements(By.xpath("//*[contains(@class,'x-grid-tree-node-leaf')]"));
应该有用。