检查是否找到了任何一个元素

时间:2017-05-09 15:47:16

标签: node.js selenium-webdriver

我想检查一下,如果element1或element2存在则返回true。我使用以下代码来检查元素1是否存在。现在我想检查是否存在具有类名element1或element2的元素,它应该返回为true并完成等待条件并转到下一行

driver.wait(until.elementLocated(by.className('element1')), 10000);

基本上如下? :P

driver.wait(until.elementLocated(by.className('element1 || element2')), 10000);

我的示例DOM如下所示

<div class="element1"></div>

OR 

<div class="element2"></div>

如果有任何div存在,我的编码将被满足..有时网页只生成元素1,有时它只生成element2,或者有时两者都生成。

2 个答案:

答案 0 :(得分:2)

您可以使用这样的css选择器来完成此操作:

by.cssSelector("div.element1, div.element2") 

在这种情况下,逗号是OR运算符。

答案 1 :(得分:1)

以下是您的问题的解决方案 -

在Selenium 3.4.0中诱导ExplicitWait,您可以使用ExpectedConditions的多个子句,如下所示:

爪哇

    WebDriverWait wait = new WebDriverWait(driver, 10);
    wait.until(ExpectedConditions.or(
        ExpectedConditions.visibilityOfElementLocated(By.className("element1")),
        ExpectedConditions.visibilityOfElementLocated(By.className("element2"))));

如果这回答你的问题,请告诉我。