javascript - 等待页面在硒中完全加载节点js
问题描述
如何让我的代码等到页面在 Nodejs 中完全加载?我使用 selenium-webdriver 版本 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);
您可以将By
标识符更新为页面上的最后一个项目,或者对需要与之交互的每个项目使用此方法。
根据您需要的状态,相同的页面还列出了其他预期条件。
最后一点,如果您不知道selenium 4 仍在 alpha 中。如果您需要新功能,您可以访问它,但它们仍在测试中,并且会经常更改。如果您不需要 selenium 4 的新功能,您可能需要回滚到最新的稳定版本。
推荐阅读
- gml - GMS2 - 为什么我会收到此语法错误?
- java - If Else 语句逻辑执行
- node.js - created_at 和 updated_at 的两列附加副本以不同的别名返回
- powershell - “add-newipaddress”导致“Windows 系统错误 1168”和“找不到对象”
- java - AXIS 2 Web 服务访问中的 ClassCastException:RequestURIBasedDispatcher
- python - 使用托管标识向 SQL 数据库验证 Azure 应用服务
- google-apps-script - 有没有办法使用 Google Apps 脚本中的日历服务来获取群组访客?
- react-testing-library - 如何更新反应测试库?
- ssl - 如何跳过bitbucket中openshift webhook的证书验证?
- typescript - 声明'export type T1 = object & ComponentOptions的'&'是什么意思
' 在打字稿中?