如果我使用 -
driver.manage().timeouts().pageLoadTimeout(5, TimeUnit.SECONDS);
driver.get(url);
如果页面未在5秒内加载,则会引发超时错误。
但如果我使用以下 -
driver.get(url);
然后在完全加载url之前不会执行进一步的命令。即它等待页面完全加载。(这是我的观察)
基于上述我有两个问题 -
get
,navigate().refresh()
,navigate().back()
,navigate().forward()
如果WebDriver无限期地(默认情况下)等待页面加载,那么应该使用pageLoadTimeout
时的理想情况是什么?
答案 0 :(得分:0)
没有默认超时。除非另有说明,否则webdriver将无限期地等待。 (除非您使用远程Web驱动程序,在这种情况下,节点的默认超时为5分钟。这意味着集线器将在上次收到操作的5分钟后断开节点。您可以阅读here。
当页面应在设定的一段时间后加载时应使用页面加载超时,如产品文档和/或负责项目的人员所定义。它在不同的项目/产品中有所不同,但在一个30秒的负载中可以被认为是一个错误而在另外3分钟内,所以取决于你正在做什么。
答案 1 :(得分:0)
- get,navigate()。refresh(),navigate()。back(),navigate()。forward()
的默认页面加载超时是什么 醇>
根据Webdriver源代码中提供的文档和说明,似乎没有指定超时持续时间。以下是driver.get()
和navigate().to()
的说明。如果您在SQA Stackexchange上看到this回答,显然默认超时为30分钟。根据{{3}}:
在当前浏览器窗口中加载新网页。这是使用完成的 HTTP GET操作,该方法将阻塞,直到加载为止 完成。这将遵循服务器或as发出的重定向 从返回的HTML中进行元重定向。 应该是元重定向 “休息”任何持续时间,最好等到这个超时 已结束,因为在测试期间底层页面是否会发生变化 执行针对此接口的未来调用的结果将是 反对新装载的页面。同义词 WebDriver.Navigation.to(字符串)。
问题:
- 如果WebDriver无限期地(默认情况下)等待页面加载,那么应该使用pageLoadTimeout的理想情况是什么?
醇>
在SQA Stackexchange网站上发布的documentation问题中,pageLoadTimeout
似乎仅适用于driver.get()
,并且不适用于点击按钮/链接后发生的网页加载。
希望这些信息有所帮助!