控制 browser.wait() 的轮询频率(流利等待)
故事:
在 Java selenium 语言绑定中有一个 FluentWait
类,允许严格控制如何检查预期条件:
In Java selenium language bindings there is a FluentWait
class, that allows to tightly control how the expected condition would be checked:
每个 FluentWait 实例定义等待的最长时间对于条件,以及检查的频率状况.此外,用户可以将等待配置为忽略等待期间的特定类型的异常,例如在页面上搜索元素时出现 NoSuchElementExceptions.
Each FluentWait instance defines the maximum amount of time to wait for a condition, as well as the frequency with which to check the condition. Furthermore, the user may configure the wait to ignore specific types of exceptions whilst waiting, such as NoSuchElementExceptions when searching for an element on the page.
换句话说,可以更改应用预期条件检查的轮询间隔,默认为 500 毫秒.另外,可以设置要忽略的异常.
In other words, it's possible to change the polling interval in which the expected condition check is applied, which is by default 500ms. Plus, it's possible to set exceptions to ignore.
在Python中也可以,有相关的poll_frequency
和 ignored_exceptions
参数到 WebDriverWait
类.
It is also possible in Python, there are relevant poll_frequency
and ignored_exceptions
arguments to WebDriverWait
class.
问题:
在Protractor/WebDriverJS中使用browser.wait()
时,是否可以控制验证预期条件的轮询频率?
Is it possible to control the poll frequency in which the expected condition is verified when using browser.wait()
in Protractor/WebDriverJS?
根据browser.wait()
文档,只有 3 个可能的参数:作为预期条件的函数、超时值和可选的超时错误消息.我希望有不同的设置或方法来更改投票频率.
According to the browser.wait()
documentation, there are only 3 possible arguments: a function which is an expected condition, a timeout value and an optional timeout error message. I hope there is a different setting or way to change the poll frequency.
推荐答案
在@Kirill S.的帮助下,经过进一步研究和检查WebdriverJS
源代码,我可以得出结论 javascript selenium 中没有轮询频率"之类的东西绑定.无法配置后续条件检查调用之间的间隔 - 它会尽快执行检查.
With the help of @Kirill S., after the further research and inspecting the WebdriverJS
source code, I can conclude that there is no such thing as "poll frequency" in javascript selenium bindings. The interval between subsequent condition check calls cannot be configured - it performs the check as quick as possible.
这与 Python 或 Java selenium 绑定中的情况不同,其中在预期的条件状态检查之间存在可配置的超时.默认情况下,会等待 500ms 再进行下一次检查:
This is not the same as in, for instance Python or Java selenium bindings, where there is a configurable timeout between the expected condition state checks. By default, it would wait for 500ms before the next check:
WebDriverWait 默认每 500 次调用 ExpectedCondition毫秒 直到它成功返回.一个成功的回报是ExpectedCondition 类型为 Boolean 返回 true 或非 null 返回值对于所有其他 ExpectedCondition 类型.
WebDriverWait by default calls the ExpectedCondition every 500 milliseconds until it returns successfully. A successful return is for ExpectedCondition type is Boolean return true or not null return value for all other ExpectedCondition types.
相关文章