我有一个web应用程序要用Selenium测试。有很多JavaScript在页面加载时运行。
这段JavaScript代码写得不是很好,但我无法更改任何内容。因此,使用findElement()
方法等待元素出现在DOM中不是一个选项。
我想在Java中创建一个泛型函数来等待页面加载,一个可能的解决方案是:
document.body.innerHTML
的结果存储在字符串变量body
中。body
变量与body
的以前版本进行比较。如果相同,则设置increment a计数器NotChangedCount
;否则将NotChangedCount
设置为零。NotChangedCount>=10
,则退出循环,否则循环到第一步。你认为这是一个有效的解决办法吗?
如果真的有人知道一个通用的、永远适用的答案,那么早在很多年前就会在所有地方实施,并且会使我们的生活变得更加容易。
你可以做很多事情,但每一件事情都有一个问题:
>
正如Ashwin Prabhu所说,如果您非常了解脚本,您可以在窗口
或文档
等上观察它的行为并跟踪它的一些变量。然而,这个解决方案并不适合所有人,只能由您使用,并且只能在有限的页面集上使用。
通过观察HTML代码以及它是否已经更改了一段时间,您的解决方案还不错(另外,有一种方法可以直接通过webdriver
获取原始的未经编辑的HTML),但是:
setTimeout()
),并且反复工作,并且每次运行时都可能更改HTML。说真的,每个“Web2.0”页面都是这样做的。甚至堆栈溢出。您可以覆盖最常用的方法,并将使用它们的脚本视为已完成,但...您不能确定。innerHTML
的乐趣。在这方面有一些工具可以帮助你。即进度侦听器以及nsIWebProgressListener和其他一些侦听器。然而,浏览器对此的支持是可怕的。Firefox从FF4开始就开始尝试支持它(还在进化中),IE在IE9中有基本的支持。
我想我很快就能想出另一个有缺陷的解决方案。事实是--没有确切的答案,什么时候说“现在页面完成了”,因为持久的脚本在做他们的工作。挑一个最能为你服务的,但要提防它的缺点。
我试图创建一个等待加载页面的方法,但我出现了一个错误。可能我没有正确使用这个方法。 错误是:
本文向大家介绍jQuery EasyUI 页面加载等待及页面等待层,包括了jQuery EasyUI 页面加载等待及页面等待层的使用技巧和注意事项,需要的朋友参考一下 下面一个代码片段是 easyUI 页面加载等待,代码如下所示: 下面看个工具类 基于easyui的页面等待提示层,即mask 效果图: 以上所述是小编给大家介绍的jQuery EasyUI 页面加载等待及页面等待层,希望对大家有所帮
问题内容: 我编写了一个脚本,该脚本从页面中获取数据,但是有时页面需要花费一些时间来加载,因此当将html拉到汤对象中时,有时它什么也不会拉,因为页面仍然需要完成。 我编写了以下代码以等待页面完成。 有用 但是调用函数时出现以下错误; 问题答案: 我认为您应该这样使用: 如手册所述。
问题内容: 我想抓取无限滚动实现的页面的所有数据。以下python代码有效。 这意味着每次我向下滚动到底部时,我都需要等待5秒,这通常足以使页面完成加载新生成的内容。但是,这可能不是省时的。该页面可能会在5秒内完成新内容的加载。每次向下滚动时,如何检测页面是否完成了新内容的加载?如果可以检测到此情况,知道页面完成加载后,可以再次向下滚动以查看更多内容。这样更省时。 问题答案: 该会通过等待页面加载
我实际上有三个问题: Selenium WebDriver如何实现此 因为我们不能给无限睡眠的线程一个负值。 有没有更好的方法来实现无限等待? 我们在SeleniumWebDriver文档中看到了这一点
问题内容: 您如何使Selenium 2.0等待页面加载? 问题答案: 您还可以使用以下代码检查页面加载