当前位置: 首页 > 知识库问答 >
问题:

等待,直到页面加载完全在selenium节点js

颜修为
2023-03-14

如何让代码等待页面在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?

共有1个答案

轩辕季同
2023-03-14

这里有两个概念-有:

  • 页面加载时间-下载页面和内容的时间(…这将下载脚本),然后

页面加载时间相对容易,但这在默认情况下是启用的,如果您已经遇到问题,可能不会有多大帮助。

对于脚本加载时间,您需要一个对象进行同步。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”,因为页面在运行该语句之前没有加载。 这是预期行为吗?我应该是狩猎旅行的特例吗?