【发布时间】:2016-02-15 16:46:48
【问题描述】:
故事:
在 Java selenium 语言绑定中有一个 FluentWait class,它允许严格控制如何检查预期条件:
每个 FluentWait 实例定义等待的最长时间 对于条件,以及检查的频率 健康)状况。此外,用户可以将等待配置为忽略 等待期间的特定类型的异常,例如 在页面上搜索元素时出现 NoSuchElementExceptions。
换句话说,可以更改应用预期条件检查的轮询间隔,默认为 500 毫秒。另外,可以设置要忽略的异常。
它是also possible in Python,WebDriverWait 类有相关的poll_frequency 和ignored_exceptions 参数。
问题:
在 Protractor/WebDriverJS 中使用browser.wait() 时,是否可以控制验证预期条件的轮询频率?
根据browser.wait() documentation,只有3 个可能的参数:作为预期条件的函数、超时值和可选的超时错误消息。我希望有不同的设置或方法来更改投票频率。
【问题讨论】:
-
来自this,看起来 JS 会尽可能快地进行轮询。所以基本上我认为它没有你想要的参数。但我想 2 种可能的解决方法可能是: 1. 编写一个自定义
Condition,如果条件在返回之前不为真,则在内部休眠 2. 改为构造Promise,根据相同的文档其行为不同 3. 第三个选项是重写wait或将其包装在一些自定义函数中。虽然不是一个不错的选择。 -
@KirilS。进行了更多研究并在答案中总结了您的观点。再次感谢!
标签: javascript selenium selenium-webdriver protractor end-to-end