java - 如何使用 selenium xpath 等待页面中的两个元素之一

标签 java selenium selenium-webdriver xpath webdriverwait

我有两个元素可以等待,我想等待直到它们中的任何一个出现在页面上。

我正在尝试使用xpath定位器。但它不起作用。

By.xpath("//*[(contains(@id,'idNumber1')) or (contains(@id,'idNumber2'))]"));

这可以实现吗?
请帮帮我。

最佳答案

可以使用 ExpectedConditions.or() 等待页面中的两个元素之一:

WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.or(
    ExpectedConditions.elementToBeClickable(By.id("idNumber1")),
    ExpectedConditions.elementToBeClickable(By.id("idNumber2"))
)); 

您还可以使用逗号 , 与 CSS 选择器执行 OR 操作:

wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("#idNumber1, #idNumber2"));

关于java - 如何使用 selenium xpath 等待页面中的两个元素之一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45166181/

相关文章:

java-android error.cannot.find.symbol.variable

node.js - 如何使用Selenium chromedriver而不强制更新?

java - Selenium Webdriver 将鼠标移动到 Point

selenium-webdriver - JRuby Watir phantomjs 异常未知错误(Windows 说 "The operation completed successfully.",但它没有。)

java - Selenium 网络驱动程序 : List is not generic; it cannot be parameterized with arguments `<WebElement>` type

java - SpringJUnit4ClassRunner 获取特定的 logback 配置

Java 管理员权限 (UAC)

Java 7 新功能 Switch 案例中的字符串数据类型

javascript - 对于 Python,获取 WebDriverException : Message: u'[JavaScript Error: "e is null"

javascript - 如何在python上三次单击以选择一个段落?