我正在使用selenium-webdriver,等待页面加载并使用driver.wait
进行检查(等待标记显示)。
两件事
有没有办法通过点击driver.wait
上的超时来处理错误(以防止它崩溃服务器)?
由于我开始怀疑这种方法不合适,这是一个使用driver.sleep
然后使用driver.findElement
检查标记是否存在的好地方
谢谢!
答案 0 :(得分:0)
使用promises,我找到了解决问题的方法:
driver.wait(webdriver.until.elementLocated(webdriver.By.tagName(selector)), 10 * 1000, "Timed out")
.catch(function(e){
if (e.message.match("Timed out")){
return e;
} else {
throw e;
}
})
.then(function(e){
if (e.message && e.message.match("Timed out")){
driver.quit();
} else {
[functional code]
});
}
});
这有点笨拙,因为selenium-webdriver只是在超时时使用throw error
而不是命名错误。但它似乎比使用driver.sleep
更好。