我正在尝试动态搜索" li"标记项目并双击此网站:www.jstree.com(右上层次树样本)。代码确实找到了WebElement,但没有做任何事情。我正在尝试如下。有人可以指出我做错了什么吗?我使用的是Firefox 35.0.1和selenium 2.44.0。
driver.get(baseUrl + "http://www.jstree.com/");
WebElement we = driver.findElement(By.xpath("/html/body/div/div/div[1]/div[1]/div[2]/div[1]/ul/li[1]/ul"));
Actions action = new Actions(driver);
List<WebElement> liItems = we.findElements(By.tagName("li"));
for(WebElement liItem:liItems)
{
System.out.println(liItem.getText());
if(liItem.getText().startsWith("initially open"))
{
System.out.println("Found it...");
liItem.click();
action.moveToElement(liItem).doubleClick().build().perform();
break;
}
}
答案 0 :(得分:3)
我最终这样做了:
修改选择器以确保仅返回预期的元素。它在执行时间和减少不需要的循环数量方面有很大帮助。然后,在运行时找到元素并在其上使用Action()
来执行双击。我还更新了Selenium
绑定,因为@alecxe建议使用最新的Firefox
public void DemoTest() throws InterruptedException {
List<WebElement> liItems = driver.findElements(By.xpath("//*[contains(text(),'initially open')]"));
for(WebElement liItem:liItems)
{
Actions actions = new Actions(driver);
actions.moveToElement(liItem).doubleClick().build().perform();
}
}