如何断言元素在页面上不存在/可见

时间:2017-06-05 20:18:54

标签: javascript node.js html5 selenium

使用Selenium,断言页面上没有元素的最佳方式(最可靠)是什么?

我们给元素一个id:

<div id="12345"></div>

在我们的Selenium代码中,我们有类似的内容:

      let el = await driver.findElement(By.id(`12345`));
      await driver.wait(until.elementIsVisible(el), 6000).then(function () {
          // we would fail the test here
          throw new Error('element was not supposed to be found!')
      });

我们应该只是在搜索元素时期望超时?或者有比预期超时更好的方法吗?

1 个答案:

答案 0 :(得分:0)

您应该使用WebDriverWaitExpectedCondition实用程序的组合。 WebDriverWait确定等待元素不可见的时间。在下面的示例中,它设置为10秒,但您可以将其调整为适合您的任何内容。 ExpectedCondition,尤其是invisibility_of_element_located()方法就是您要使用的方法。所以这就是你需要的东西(在Python中):

WebDriverWait(driver, 10).until(ExpectedCondition.invisibility_of_element_located((By.ID, elementIdentifier)))