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