selenium动态点击li项目
selenium dynamically click li item
我正在尝试动态搜索 "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;
}
}
我最终这样做了:
修改了选择器以确保只返回预期的元素。它在执行时间和减少不需要的循环次数方面有很大帮助。并且,然后找到运行时间的元素并在其上使用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();
}
}
我正在尝试动态搜索 "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;
}
}
我最终这样做了:
修改了选择器以确保只返回预期的元素。它在执行时间和减少不需要的循环次数方面有很大帮助。并且,然后找到运行时间的元素并在其上使用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();
}
}