当前位置:   article > 正文

Selenium与Metamask钱包及DApp交互及验证码破解汇总_selenium metamask

selenium metamask

1.LavaMoat报错:

selenium.common.exceptions.WebDriverException: Message: unknown error: Runtime.callFunctionOn threw exception: Error: LavaMoat...`
  • 1

报错原因:

根本原因是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() 要换成新的。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

参考链接:https://blog.csdn.net/u013948858/article/details/130723828

2.报错:selenium使用可用的IP代理地址,仍然无法连接。webdriver添加正确ip代理依然访问失败。

《!!!!该解决办法是错误的!!!!详细请下拉看第8个!!!!》

报错原因:暂不清楚
解决方法:

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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

options.add_argument()里的参数端口冒号,改为中文的冒号,一下子就访问成功了。
这应该是目前遇到的最奇怪的错误了

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/655784
推荐阅读
相关标签