Selenium WebDriver上超时的默认值



我对Selenium webdriver. ImplicitlyWaitSetPageLoadTimeoutSetScriptTimeout上超时的默认值感兴趣。因为我想知道,我是否需要为那些超时设置值?否则默认值对Selenium WebDriver工作有益。但是我找不到正确的答案,有人说默认值是0,另一个人说这是30秒

这三个超时由硒方程的服务器端管理。您的脚本,无论是在Java,Python,Ruby,c#还是其他脚本,或者是将命令发送到浏览器中的服务器的客户端。(可能有一个中介机构将命令传递到浏览器,例如硒网格。不幸的是,有时也称为"服务器"。)

从硒中得出的WebDriver规范已在以下值下方。

  • 隐式等待:0秒。这意味着,如果硒命令立即找到元素,它立即报告,而不是等到找到元素。

  • 页面加载:300秒。

  • 脚本超时:30秒。

(规格以毫秒为单位。

Selenium现在遵循WebDriver规范。


过去,硒对这些使用了其他值。例如,Firefox驱动程序用于定义这样的超时:

  • 默认情况下,隐式等待超时设置为0。这意味着,如果找到元素的命令找不到任何东西,则不会等待。

  • 默认情况下,页面加载超时设置为-1。这意味着硒将无限期等待页面加载。

    saifur发现的是不是与页面加载超时相同。这是Selenium Client和Selenium Server之间的超时,在Saifur的页面上,这并不是特别好的解释。

  • 默认情况下,脚本超时设置为0。源代码中的评论说明了:

    以毫秒为单位的时间,本会话应等待异步脚本完成执行。如果设置为0,则直到执行脚本后的下一个事件循环,超时才会发射。这将为脚本提供使用0基于0的settimeout完成的脚本。

    因此,即使设置为零,异步脚本仍然可以执行,但是在硒的超时有机会再次运行之前,它必须完成。

这是硒用于Firefox的代码。其他浏览器使用不同的代码库,但应该保持一致的行为,至少在适合硒本身的事物方面,例如这些超时。因此,其他浏览器也应该相同的值及其解释。

对于隐式等待始终默认等待零。,您可以在这里检查:

硒网络驱动器差异。等待

,如果您设置了自定义时间,那么Web驱动程序将等到到那个时间,如果直到那个时间都找不到元素,则只有Web驱动程序会抛出异常。

硒文档在这些暂停中非常不清楚。

  1. 根据这隐式等待的默认超时为 0
  2. 根据这任何不加载60年代的页面都会返回HTTP通信超时,除非您明确覆盖超时。
  3. 不幸的是,我没有找到任何参考ScriptTimeOut。但是,根据我的知识,它默认为 0 和经验。稍后将向您更新任何参考

最新更新