Selenium with Java - 无法为下拉列表创建循环

时间:2016-08-09 16:05:48

标签: java selenium-webdriver dropdown

我无法通过所选项目的定位器选择下一个下拉项目。我的目的是通过下拉列表测试不同语言的网站。向下发送键盘会激活下拉菜单中的滚动条。有人可以帮忙吗?

driver.findElement(By.xpath(".//*[@id='trigger']/div/paper-input/paper-input-container")).click();
    Thread.sleep(1000);
    driver.findElement(By.xpath(".//*[@id='langList']//paper-item//.[@tabindex=\"0\"]")).click();
    Thread.sleep(1000);
    driver.findElement(By.xpath(".//*[@id='langList']//paper-item//.[@tabindex=\"0\"]")).sendKeys(Keys.ENTER, Keys.ARROW_DOWN);

2 个答案:

答案 0 :(得分:2)

我打算写一些例子,但记得Dave Haeffner已经在他的元素硒系列中已经涵盖了这个。

你可以在这里找到这篇文章的精彩内容: How To Select from a Dropdown in Selenium

我会提到一件事。你应该努力从不使用隐式等待(Thread.sleep())。除非处理得好,否则它们不会产生明显的异常错误,并且会大大减慢测试速度。确定您正在等待的内容,并创建一个明确的等待。如果您需要有关创建这些信息的更多信息,我可以详细介绍。

答案 1 :(得分:1)

非常感谢。它现在使用以下代码:

driver.findElement(By.xpath(".//*[@id='trigger']/div/paper-input/paper-input-container")).click();
    Thread.sleep(1000);
    driver.findElement(By.cssSelector(".style-scope.making-language-selector.iron-selected.x-scope.paper-item-0")).click();

    driver.findElement(By.cssSelector(".style-scope.making-language-selector.iron-selected.x-scope.paper-item-0")).sendKeys(Keys.ARROW_DOWN, Keys.ENTER);