Selenium Node API Web驱动程序等待超时处理程序

时间:2016-02-29 20:16:34

标签: selenium selenium-webdriver timeout

我是Selenium网络硬盘的新手。尝试进行一些页面自动化,并使用driver.wait函数先等待选择器渲染,然后再进行一些操作。

想知道如果元素在x秒后没有显示,Selenium是否有办法传入超时处理程序来管理超时。

这是我的代码:

driver.wait(function () {
    return driver.isElementPresent(webdriver.By.css('input[id="searchMap"]'));
}, 10000);

因此,如果input[id="searchMap"]未显示,则10秒后,Selenium脚本将结束并抛出Error。

我正在寻找类似的东西:

driver.wait(function () {
    return driver.isElementPresent(webdriver.By.css('input[id="searchMap"]'));
}, 10000, function fail(){
    console.log("Time is up!");
});

1 个答案:

答案 0 :(得分:0)

我自己找到了解决方案。必须将catch用于Selenium promise类。

http://seleniumhq.github.io/selenium/docs/api/javascript/module/selenium-webdriver/lib/promise_exports_Promise.html

这是我的代码:

driver.wait(function () {
    return driver.isElementPresent(webdriver.By.css('div.info-page'));
}, 10000).catch(function(e){
    console.log('Catching Error');
});