browser.wait(..)似乎会无限期地等待。我想为所有此类调用指定默认值。有办法吗?
答案 0 :(得分:0)
听起来像您可能需要使用browser.sleep()
而不是browser.wait()
,因为
browser.wait()
计划命令以等待条件成立或承诺解决。
但是无论如何,您可以将默认超时存储在protractor.conf文件中
params: {
defTiemout: 12000,
} // you can put it anywhere and call it whatever
然后使用它
browser.sleep(browser.params.defTiemout)
答案 1 :(得分:0)
更正:默认情况下,隐式等待被设置为0
,但是它们没有为browser.wait
函数设置超时。对于这些,请尝试以下我的建议:
我只是为我的套件制作了一个帮助文件:
const EC = protractor.ExpectedConditions;
const timeOut = 5000;
const helpers = {
waitForClickable: (element) => browser.wait(EC.elementToBeClickable(element), timeOut),
waitForPresence: (element) => browser.wait(EC.presenceOf(element), timeOut),
waitForVisible: (element) => browser.wait(EC.visibilityOf(element), timeOut),
waitForInvisible: (element) => browser.wait(EC.invisibilityOf(element), timeOut),
waitForUrl: (text) => browser.wait(EC.urlIs(text), timeOut)
};
module.exports = helpers;
像这样使用它们:
it('should wait for element', async () => {
await helpers.waitForClickable(youElement);
});