selenium.common.exceptions.JavascriptException: Message: javascript error: window.crypto.getRandomValues is not a function
如上,只是自动化打开一个网页然后填入用户名和密码,但是只能打开网页,之后就报错,无法填入用户名和密码
请教Python爬虫报错window.crypto.getRandomValues is not a function是什么原因啊?(相关搜索:自动化)
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
GISer Liu 2024-02-22 19:46关注该回答引用自GPT-3.5,由博主GISer Liu编写:
根据你提供的问题描述,报错信息"window.crypto.getRandomValues is not a function"表明在你的Python爬虫中使用了JavaScript的
window.crypto.getRandomValues函数,但是该函数在你的环境中并不存在,导致报错。这个问题通常是因为Selenium使用的是一个模拟浏览器环境,而在这个模拟环境中,并没有
window.crypto.getRandomValues函数,因为它通常用于生成加密强度的随机数,而模拟环境中不需要这样的功能。解决这个问题的一种方法是通过配置Selenium的浏览器选项来模拟一个环境,该环境中存在
window.crypto.getRandomValues函数。可以尝试切换浏览器驱动器或者调整其配置,例如使用Chrome或Firefox等浏览器,并确保其版本和Selenium WebDriver版本兼容。另外,如果你的目标是填写用户名和密码,可以考虑直接通过Selenium模拟输入的方式,而不是依赖于JavaScript函数。你可以使用
find_element_by_id或其他类似的方法找到用户名和密码输入框,然后使用send_keys方法输入相应的内容。下面是一个简单的示例代码,用于通过Selenium输入用户名和密码:
from selenium import webdriver # 初始化浏览器 driver = webdriver.Chrome() # 打开网页 driver.get("https://example.com") # 找到用户名和密码输入框,并输入相应内容 username_input = driver.find_element_by_id("username") password_input = driver.find_element_by_id("password") username_input.send_keys("your_username") password_input.send_keys("your_password") # 可选:提交表单 password_input.submit() # 关闭浏览器 driver.quit()通过这种方式,你可以避免使用JavaScript函数,从而避免了
window.crypto.getRandomValues is not a function的错误。如果该回答解决了您的问题,请采纳!如果没有,请参考以下方案进行修订
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决评论 打赏 举报无用 1