selenium动态点击li项目

时间:2015-03-02 02:23:15

标签: java search selenium selenium-webdriver html-lists

我正在尝试动态搜索" 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;
        }
    }

1 个答案:

答案 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();
        }
    }
相关问题