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

使用Selenium+Python对Electron Vue.js应用做E2E测试无法启动求助

问题排查及修复方案

1. 核心版本匹配问题

  • 必须保证ChromeDriver版本与Electron内置Chromium版本完全一致:
    • 进入项目根目录执行命令npx electron -v获取当前使用的Electron版本
    • 匹配对应Chromium版本后下载对应ChromeDriver,不要直接使用最新版ChromeDriver

2. 现有代码逻辑错误修复

现有代码存在两个核心逻辑问题:

  • 同时初始化了普通Chrome浏览器实例和Electron远程实例,后续操作完全没有用到连接Electron的实例
  • chromeOptions配置错误,指定的binary路径是npm启动脚本而非Electron可执行文件,也没有传入应用入口参数

3. 修正后的代码示例

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

# 配置Chrome选项
chrome_options = Options()
# 这里填Electron可执行文件的实际路径,不是.bin下的启动脚本
chrome_options.binary_location = r"C:\Users\ddd\source\repos\vueselenium\new-app\node_modules\electron\dist\electron.exe"
# 传入你的项目根目录作为Electron启动参数
chrome_options.add_argument(r"C:\Users\ddd\source\repos\vueselenium\new-app")
# 关闭沙箱(Windows环境下必要参数)
chrome_options.add_argument("--no-sandbox")

# 直接初始化webdriver,不需要单独起远程连接
driver = webdriver.Chrome(
    executable_path=r'C:/Users/ddd/Downloads/chromedriver_win32/chromedriver.exe',
    options=chrome_options
)

# 后续操作
print("Page Title is : %s" % driver.title)
driver.maximize_window()
print(driver.title)
driver.quit()

4. 可选:先启动应用再连接的方案

如果你习惯先手动启动Electron应用再连接,可以先修改应用启动配置,开启远程调试端口:

  • 在package.json的electron:serve对应的启动命令后加--remote-debugging-port=9515
  • 执行npm run electron:serve启动应用后,再运行简化版的连接代码:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.debugger_address = "localhost:9515"
driver = webdriver.Chrome(
    executable_path=r'C:/Users/ddd/Downloads/chromedriver_win32/chromedriver.exe',
    options=chrome_options
)
print(driver.title)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 08:45:02