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();
        }
    }