selenium - 当使用 Selenium 和 Java 可以找到任何一个元素时如何选择一个元素

标签 selenium selenium-webdriver select webdriver webdriverwait

每个负载的数量按钮设计都不同。我已经认出他们了 但我想在找到任一元素时继续。

//select quantity 2
//sometimes button A appear
driver.findElement(By.xpath("//select[@id='quantity']")).click();
Select quantity = new Select(driver.findElement(By.xpath("//select[@id='quantity']")));
quantity.selectByIndex(1); 

//sometimes button B appear
driver.findElement(By.xpath("//select[@id='amt']")).click();
Select amt = new Select(driver.findElement(By.xpath("//select[@id='amt']")));
quantity.selectByIndex(1); 

最佳答案

您可以使用 findElements() 代替 findElement(),它会返回 Web 元素列表。

现在,如果大小为1,您的脚本将知道该特定元素是否存在。如果尺寸 ID 0,则按钮在 UI 中将不可见。

数量按钮类似于这样:

List<WebElement> quantityButton = driver.findElements(By.xpath("//select[@id='quantity']"));
if(quantityButton.size()==1){
   quantityButton.get(0).click();
}  

对于 amt 按钮:

List<WebElement> amtButton = driver.findElements(By.xpath("//select[@id='amt']"));
    if(amtButton.size()==1){
       amtButton.get(0).click();
    }  

您可以根据您的要求编写相应的 else block 。

不同的方法是使用 try-catch block 。

请告诉我这是否有帮助。

关于selenium - 当使用 Selenium 和 Java 可以找到任何一个元素时如何选择一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55948911/

相关文章:

javascript - 在 Node 上使用 Selenium 的 WebDriverJs 截屏的正确语法

python-3.x - Python Selenium find_element_by_xpath

java - 未从 div 获取值

mysql - 编写sql查询来获取搜索结果

mysql - 选择两个表的差异

selenium - 将 Selenium Server 和 ChromeDriver 作为 Windows 服务运行

java - 如何使用 Selenium 选择不同的元素?

selenium-webdriver - 错误网络驱动程序 : Request failed with status 500 due to unknown error: unknown error: Failed to create Chrome

java - 如何在 Java 中使用 Selenium 提交表单

mysql - 从表中选择(关键字)