赞
踩
selenium.common.exceptions.WebDriverException: Message: unknown error: Runtime.callFunctionOn threw exception: Error: LavaMoat...`
根本原因是Metamask为了用户钱包安全,而将LavaMoat 设置为了全局不可用。
报错解析文章链接:
https://github.com/MetaMask/metamask-extension/issues/19018
Runtime.callFunctionOn threw exception: Error: LavaMoat - property “Proxy” of globalThis is inaccessible under scuttling mode
https://stackoverflow.com/questions/76252205/runtime-callfunctionon-threw-exception-error-lavamoat-property-proxy-of-gl
修改 metamask 中的安全机制逻辑
安装 CRX Extractor/Downloader
打开页面 https://chrome.google.com/webstore/detail/metamask/nkbihfbeogaeaoehlefnkodbefgpgknn
页面中,点击工具栏中 CRX Extractor/Downloader 使用插件下载 zip 格式的 metamask 包
将下载的 zip 解压,vscode 打开,找到并将 runtime-lavamoat.js 文件第 93 行的 scuttleGlobalThis 改为false 保存
在将 metamask 压缩成 zip (就是普通的压缩)
打开 chrome://extensions/ 页面,将 zip 文件拖进来,重新安装;
如果上一步报错了,可使用 加载已解压的扩展程序, 手动选择下载的修改过 metamask 文件夹,进行加载
需要注意的是这种方式安装的 ext ,对应的 ID 会有变化的, 也就是 chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/home.html driver.get() 要换成新的。
参考链接:https://blog.csdn.net/u013948858/article/details/130723828
报错原因:暂不清楚
解决方法:
import requests from selenium import webdriver url="https://www.baidu.com/" ip="114.96.199.198" port = "4325" proxy={ "http":"http://"+ip+":"+port} headers={ "User-Agent":"Mozilla/5.0"} res=requests.get(url,proxies=proxy,headers=headers) print(res.status_code) # 返回200:表示该ip代理是可用的 print('------------------') chrome_path = '/Users/dannihong/downloads/webdriver_browser/chromedriver86' options=webdriver.ChromeOptions() options.add_argument('--proxy-server=http://'+ip+":"+port) options.add_argument('--proxy-server=http://114.96.199.198:4325') # 必须是中文冒号 driver=webdriver.Chrome(executable_path=chrome_path, chrome_options=options) driver.get(url)
options.add_argument()里的参数端口冒号,改为中文的冒号,一下子就访问成功了。
这应该是目前遇到的最奇怪的错误了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。