驱动程序导航方法的默认超时和使用pageLoadTimeout的理想情况

时间:2015-04-24 11:41:10

标签: selenium selenium-webdriver

如果我使用 -

driver.manage().timeouts().pageLoadTimeout(5, TimeUnit.SECONDS);
driver.get(url);

如果页面未在5秒内加载,则会引发超时错误。

但如果我使用以下 -

driver.get(url);

然后在完全加载url之前不会执行进一步的命令。即它等待页面完全加载。(这是我的观察)

基于上述我有两个问题 -

  1. getnavigate().refresh()navigate().back()navigate().forward()

  2. 的默认页面加载超时是什么?
  3. 如果WebDriver无限期地(默认情况下)等待页面加载,那么应该使用pageLoadTimeout时的理想情况是什么?

2 个答案:

答案 0 :(得分:0)

  1. 没有默认超时。除非另有说明,否则webdriver将无限期地等待。 (除非您使用远程Web驱动程序,在这种情况下,节点的默认超时为5分钟。这意味着集线器将在上次收到操作的5分钟后断开节点。您可以阅读here

  2. 当页面应在设定的一段时间后加载时应使用页面加载超时,如产品文档和/或负责项目的人员所定义。它在不同的项目/产品中有所不同,但在一个30秒的负载中可以被认为是一个错误而在另外3分钟内,所以取决于你正在做什么。

答案 1 :(得分:0)

  
      
  1. get,navigate()。refresh(),navigate()。back(),navigate()。forward()
  2. 的默认页面加载超时是什么   

根据Webdriver源代码中提供的文档和说明,似乎没有指定超时持续时间。以下是driver.get()navigate().to()的说明。如果您在SQA Stackexchange上看到this回答,显然默认超时为30分钟。根据{{​​3}}:

  

在当前浏览器窗口中加载新网页。这是使用完成的   HTTP GET操作,该方法将阻塞,直到加载为止   完成。这将遵循服务器或as发出的重定向   从返回的HTML中进行元重定向。 应该是元重定向   “休息”任何持续时间,最好等到这个超时   已结束,因为在测试期间底层页面是否会发生变化   执行针对此接口的未来调用的结果将是   反对新装载的页面。同义词   WebDriver.Navigation.to(字符串)。

问题:

  
      
  1. 如果WebDriver无限期地(默认情况下)等待页面加载,那么应该使用pageLoadTimeout的理想情况是什么?
  2.   

在SQA Stackexchange网站上发布的documentation问题中,pageLoadTimeout似乎仅适用于driver.get(),并且不适用于点击按钮/链接后发生的网页加载。

希望这些信息有所帮助!