使用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!')
});
我们应该只是在搜索元素时期望超时?或者有比预期超时更好的方法吗?
答案 0 :(得分:0)
您应该使用WebDriverWait
和ExpectedCondition
实用程序的组合。 WebDriverWait
确定等待元素不可见的时间。在下面的示例中,它设置为10秒,但您可以将其调整为适合您的任何内容。 ExpectedCondition,尤其是invisibility_of_element_located()
方法就是您要使用的方法。所以这就是你需要的东西(在Python中):
WebDriverWait(driver, 10).until(ExpectedCondition.invisibility_of_element_located((By.ID, elementIdentifier)))