当前位置: 首页 > 面试题库 >

Selenium Webdriver上的超时默认值

阎雪峰
2023-03-14
问题内容

我感兴趣的selenium超时的默认值webdriver. ImplicitlyWaitSetPageLoadTimeoutSetScriptTimeout。因为我想知道,我需要为这些超时设置值吗?或默认值适合selenium
webdriver工作。但是我找不到正确的答案,有人说默认值是0,而另一个人说是30秒。


问题答案:

这三个超时由Selenium方程的服务器端管理。您的脚本(使用Java,Python,Ruby,C#或其他任何语言)是将命令发送到位于浏览器中的服务器的客户端。(可能会有中介程序将命令中继到浏览器,例如Selenium网格。不幸的是,有时也称为“服务器”。)

源自Selenium 的WebDriver规范已确定以下值:

  • 对于隐式等待:0秒。这意味着,如果selenium命令没有立即找到一个元素,它将立即报告,而不是等到找到一个元素。

  • 对于页面加载:300秒。

  • 对于脚本超时:30秒。

(规范以毫秒为单位给出值。为了方便阅读,我将其转换为秒。)

Selenium现在遵循WebDriver规范。

过去,Selenium为此使用了其他值。例如,Firefox驱动程序用于定义其超时,如下所示:

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

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

什么Saifur 发现是
一样的页面加载超时。这是Selenium客户端和Selenium服务器之间的超时,在Saifur找到的页面上没有特别说明。

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

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

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

这来自Selenium用于Firefox的代码。其他浏览器使用不同的代码库,但至少在某些适合Selenium本身的事情(如这些超时)方面,它们应该表现出一致的行为。因此,其他浏览器的值及其解释也应相同。



 类似资料:
  • 问题内容: 我似乎有时会遇到一些tcp请求被“卡住”的麻烦,就像它正在等待一些响应,但连接已被“切断”,因此响应永远不会到来。这是具有默认超时的HttpURLConnection的预期行为吗?是否设置了明智的默认设置,以便默认情况下我无法进入这种奇怪的“挂起”情况? 问题答案: 出现HttpURLConnection的“默认”超时为零,表示“无超时”。 不幸的是,根据我的经验,根据您与服务器的连接

  • 问题内容: 默认情况下,PHP会话是否超时-即,如果我没有任何编码,最终在一段时间不活动后最终将“注销”用户吗? 问题答案: 这取决于服务器配置或相关指令的session.gc_maxlifetime在。 通常情况下,默认值为24分钟(1440秒),但是您的虚拟主机可能已将默认值更改为其他值。

  • 假设我有一些异步计算,比如: 如果异步供应商根据某个指定的超时超时,有没有一种很好的方法为foo提供默认值?理想情况下,这样的功能也会尝试取消运行缓慢的供应商。例如,是否存在与以下假设代码类似的标准库功能: 编辑:这里有一个受Java8启发的解决方案:在lambda表达式中强制检查异常处理。为什么是强制的,而不是可选的?,但不幸的是它阻塞了一个线程。如果我们依赖于createFoo()异步检查超时

  • 问题内容: 我收到了一个我无法复制的错误报告,但是ajax调用超时是当前的最佳猜测。 因此,我试图找出jQuery 调用超时的默认值。有人有主意吗?在jQuery文档中找不到。 在此先感谢Marcus 问题答案: 似乎没有标准化的默认值。我感觉默认值为,而超时事件完全取决于浏览器和网络设置。 对于IE,还有对XmlHttpRequests超时属性在这里。它默认为null,表示网络堆栈很可能是第一个

  • 问题内容: 我正在运行golang http客户端以对服务器进行压力测试。有时我收到错误“拨号tcp 161.170.xx.xxx:80:操作超时”错误。 我认为这是HTTP客户端超时。我正在考虑基于增加超时值,但是我想先找出golang中的默认超时值是多少。如果它取决于操作系统而不是语言,那么如何在Mac OS中检查此值? 问题答案: 根据http://golang.org/pkg/net/#D

  • 问题内容: Python 3.4。尝试在urllib.request.urlopen()中查找默认超时是多少。 它的签名是:urllib.request.urlopen(URL,data = None,[timeout,] *,cafile = None,capath = None,cadefault = False,context = None) 该文档称其为“全局默认超时”,并查看其代码:so