Javascript 将隐式等待传递到预期条件,如stalenessOf?
我们可以为失败的预期条件传递超时:Javascript 将隐式等待传递到预期条件,如stalenessOf?,javascript,selenium,selenium-webdriver,protractor,Javascript,Selenium,Selenium Webdriver,Protractor,我们可以为失败的预期条件传递超时: browser.wait(EC.stalenessOf(elementThatIsNotStale), 3000, 'Error: Element was found in the dom'); 我们是否可以传入一个值来覆盖当前在成功时使用的隐式超时? 也就是说,我想确保一个元素没有连接到dom,但我不想等待隐式超时设置为30秒。我想同时通过失败和通过计时器: browser.wait(EC.stalenessOf(elementThatIsStale),
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秒钟
是否有方法传递隐式超时覆盖?根据,浏览器。wait()
仅接受3个参数:
- 期望条件函数
- 超时值
- 可选超时消息
browser.wait()
更改隐式超时。您可以尝试通过以下方式使用隐式等待超时:
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
在检查负案例(不存在/不显示)时,需要将隐式等待设置为非常低的值,然后等待条件,然后将隐式等待设置回其原始值 大概是这样的:
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是一个类似于零的低值
负等待是等待元素不存在/不显示时使用的超时