在使用 Selenium (Python) 之前如何执行页面上的所有 JavaScript?

问题描述 投票:0回答:1

我有一个网页,我正在尝试使用 Selenium 和 Python 来查找其中的特定元素。

我遇到的问题是我尝试查找的所有元素都是使用 JavaScript 动态生成的。我已经打印出我的 Selenium 脚本正在输入的整个页面源代码,看起来这纯粹是服务器发送给我的浏览器的内容 - 带有 JavaScript 脚本的纯 HTML,需要运行这些脚本来创建我所看到的页面在浏览器中。

即我需要使用 Selenium 检查的代码是我在使用 Chome 开发工具检查元素时看到的代码(当所有脚本都已运行时),而是接收直接的 HTML,就像右键单击时看到的那样页面并选择“查看页面源”。

我目前正在使用 Edge 和 Edge WebDriver,因为 Chrome 版本 122 没有网络驱动程序(只有 123...)并且 Chrome 版本 123 尚未发布。

你知道有什么方法可以确保 Selenium 传递到所有 JS 脚本都已运行的完整网页吗?

同时,我将尝试编写一段代码来收集所有脚本元素并逐一运行它们以查看是否有效,但直觉上我觉得有更好的方法来做到这一点!

如有任何帮助,我们将不胜感激。

谢谢。

javascript python selenium-webdriver
1个回答
0
投票

我添加了显式等待。找到每个页面最后加载的内容(搜索框)并等待:

wait.until(EC.element_to_be_clickable((By.ID, "[搜索框名称]")))

© www.soinside.com 2019 - 2024. All rights reserved.