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

使用Python+Selenium测试Electron应用时如何引入electron二进制文件

你当前代码存在的核心问题是同时在options和DesiredCapabilities中配置了两个不同的二进制文件路径,启动时Selenium会优先调用capabilities中配置的electron空壳,没有加载你的实际应用代码,所以出现i18n失效的问题。

正确配置方式

新版本Selenium(v3.14及以上)仅需通过options.binary_location配置二进制路径即可,不需要额外在capabilities中重复设置,避免路径冲突。

场景1:测试已打包的exe应用

直接保留你的exe路径配置,删除capabilities相关的binary配置即可,参考代码:

import time
from selenium import webdriver as app
from selenium.webdriver.chrome.options import Options

options = Options()
# 配置为打包好的应用exe路径
options.binary_location = "C:/Users/eeee/AppData/Local/Programs/folder/app.exe"

# 不需要传入desired_capabilities参数,避免冲突
driver = app.Chrome(options=options)

time.sleep(5)
driver.quit()

场景2:测试开发环境未打包的应用

如果需要在开发阶段测试,指定electron路径的同时,需要添加参数传入应用入口目录,参考代码:

import time
import os
from selenium import webdriver as app
from selenium.webdriver.chrome.options import Options

# 可选:提前设置工作目录,避免i18n资源文件加载失败
os.chdir("你的应用项目根目录路径(package.json所在目录)")

options = Options()
# 配置为electron二进制路径
options.binary_location = "./node_modules/.bin/electron"
# 传入应用根目录作为启动参数,electron会自动加载入口文件
options.add_argument("你的应用根目录路径")

driver = app.Chrome(options=options)

time.sleep(5)
driver.quit()

额外排查点

如果修改配置后i18n仍然失效,可以检查:

  • 应用的i18n资源文件是否使用了相对路径,Selenium启动时的工作目录和手动启动是否一致
  • 打包后的应用是否将i18n资源文件正确打包进了exe目录

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 09:06:03