具有 Java 的 Selenium - 无法为下拉列表创建循环

Selenium with Java - Unable to create a loop for a drop down

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

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

我本来打算写一些例子,但记得 Dave Haeffner 已经在他的元素硒系列中介绍了这一点。

您可以在此处找到精彩的文章: How To Select from a Dropdown in Selenium

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

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

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