具有 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);
我无法通过 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);