我们可以为失败的预期条件传递超时:
browser.wait(EC.stalenessOf(elementThatIsNotStale), 3000, 'Error: Element was found in the dom');
我们可以传入一个值来覆盖当前成功使用的隐式超时吗? 即,我想确保一个元素没有附加到dom,但我不想等待我们的隐式超时设置为30秒。我想传递失败和传递计时器:
browser.wait(EC.stalenessOf(elementThatIsStale), 3000, 3000, 'Error: Element was found in the dom');
这样,在返回结果之前,它只检查3秒,无论通过或失败。
有没有办法传入隐式超时覆盖?
答案 0 :(得分:1)
根据documentation,browser.wait()
只接受3个参数:
无法通过browser.wait()
更改隐式超时。您可以通过implicitlyWait()
尝试使用隐式等待超时,而不是测试:
browser.implicitlyWait(3000);
browser.wait(EC.stalenessOf(elm), 3000, 'Error: Element was found in the dom');
browser.implicitlyWait(DEFAULT_IMPLICIT_TIMEOUT); // back to a default value
答案 1 :(得分:0)
在检查否定情况(不存在/不显示)时,需要将隐式等待设置为非常低的值,然后等待条件,然后将隐式等待设置回其原始值。
这样的事情:
browser.driver.manage().timeouts().implicitlyWait(NO_IMPLICIT_WAIT);
browser.waitUntil(EC.stalenessOf(ele), message, NEGATIVE_WAIT);
browser.driver.manage().timeouts().implicitlyWait(DEFAULT_IMPLICIT_WAIT);
其中:
DEFAULT_IMPLICIT_WAIT是驱动程序在每次调用element()之前等待的默认超时 NO_IMPLICIT_WAIT是一个低值,如零 NEGATIVE_WAIT是等待元素不存在/不显示时使用的超时