如何让代码等待页面在Nodejs中完全加载?我使用SeleniumWebDriver版本4.0。0
const driver = new Builder().forBrowser("firefox").build();
await driver.get("http://www.tsetmc.com/Loader.aspx?ParTree=15131F");
// here we should wait but how?
这里有两个概念-有:
页面加载时间相对容易,但这在默认情况下是启用的,如果您已经遇到问题,可能不会有多大帮助。
对于脚本加载时间,您需要一个对象进行同步。selenium文档很好地概述了不同的等待策略,并提供了不同语言的代码示例。
查看页面时,您很可能希望尝试显式等待。在Javascript中,这是:
await driver.wait(until.elementLocated(By.id('foo')), 30000);
您可以通过标识符更新,使其成为页面上的最后一个项目,或者对需要交互的每个项目使用此方法。
同样的页面还列出了其他预期条件,这取决于您需要的状态。
如果您不知道selenium 4仍在alpha中,请快速记下最后一点。如果您需要新功能,您可以访问它,但它们仍在测试中,并且可能会频繁更改。如果您不需要selenium 4的新功能,您可能希望回滚到最新的稳定版本。
我试过下面的方法,但效果不理想。
问题内容: 我编写了一个脚本,该脚本从页面中获取数据,但是有时页面需要花费一些时间来加载,因此当将html拉到汤对象中时,有时它什么也不会拉,因为页面仍然需要完成。 我编写了以下代码以等待页面完成。 有用 但是调用函数时出现以下错误; 问题答案: 我认为您应该这样使用: 如手册所述。
问题内容: 您如何使Selenium 2.0等待页面加载? 问题答案: 你可以期望显示一些元素。类似于C#:
问题内容: 我使用AJAX在页面A上显示页面B的内容。 如何在内容显示之前让jQuery等待所有内容加载(文本,图像等)? 当处理AJAX请求时,我使用beforeSend向用户显示加载动画。现在,我想“延长”等待时间,以便在加载所有图像之前加载动画不会消失。 我最初尝试隐藏附加数据,等待所有图像加载,然后显示内容- 内部但事件似乎没有触发。 有任何想法吗? 更新: 更新的代码: 问题答案: 您必
问题内容: 使用Selenium2Driver将Behat与Mink结合使用时,是否有办法可靠地等待页面加载? 我继承了一些旧的测试,像这样等待: 即仅此一次测试就需要1分钟30秒。 我想做的是有一种通用的方式来等待上一次单击以导致页面加载,而不必每次都等待大量固定的时间。 我可以看到等待页面加载的所有建议,都涉及检查是否已加载特定页面元素。 但是,这些测试是针对各种传统网站运行的,这些网站中并不
Selenium的SafariDriver似乎不会等待网页加载。我的测试如下: 如果您使用或运行此功能,它将正常运行,即搜索“您好世界”,然后在结果页面上转到图像结果。 使用,它会失败: 找不到的元素是“Images”,因为页面在运行该语句之前没有加载。 这是预期行为吗?我应该是狩猎旅行的特例吗?