You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Selenium加载Metamask扩展时PermissionError: [Errno 13]权限错误

问题原因
  • 核心错误原因:options.add_extension() 方法要求传入的是Chrome扩展的*.crx压缩包文件路径,你当前传入的是解压后的Metamask扩展文件夹路径,系统无法将文件夹作为文件读取,所以触发PermissionError,和管理员权限无关。
  • 附加代码错误:你使用find_element_by_css_selector()方法时传入了XPath路径,后续就算插件加载成功也会触发选择器匹配错误。同时Metamask加载后会自动新开标签页,没有切换标签的话也无法在谷歌首页找到插件的元素。
解决步骤
  1. 首先获取Metamask 9.8.4版本的crx安装包,可以从Chrome扩展商店下载对应版本的crx文件,也可以在Chrome扩展管理页面开启开发者模式,把本地解压的扩展文件夹打包成crx格式,将生成的crx文件放到你的项目目录下,比如命名为metamask-9.8.4.crx。
  2. 修改代码中加载扩展的行,替换为crx文件路径:
options.add_extension('metamask-9.8.4.crx')
  1. 修正选择器调用错误,使用XPath路径匹配元素要调用对应的XPath方法,同时补充切换到Metamask标签页的逻辑。
修正后完整代码
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time

options = Options()
options.add_extension('metamask-9.8.4.crx')

driver = webdriver.Chrome('./chromedriver', options = options)
# 等待扩展加载完成
time.sleep(5)
# 切换到Metamask新开的标签页
driver.switch_to.window(driver.window_handles[1])

get_started_button = driver.find_element_by_xpath('//*[@id="app-content"]/div/div[3]/div/div/div/button')
get_started_button.click()

input('Press [ENTER] to close browsers...')

driver.quit()

内容的提问来源于stack exchange,提问作者noromon99

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 20:57:04