问题描述
用python编写脚本启动electron应用时,指定了electron应用exe文件路径,指定了user-data-dir,配置是对应的driver路径
options = webdriver.ChromeOptions()
options.binary_location = 'D:\\xx\xx.exe'
options.add_argument('user-data-dir="C:\Users\xxx\AppData\Roaming\xxx-client"')
driver_path='D:\\xxx\\chromedriver.exe'
driver = webdriver.Chrome(executable_path=driver_path, options=options)
应用可以正常启动,但是执行到某些步骤时报js错误

查看根本原因是node的模块未能正确加载

解决过程
定位到对应js位置,发现是相对路径

修改js为绝对路径后,可以正常执行不报错。需要进一步定位相对路径位置
在执行加载模块前打印路径
const { resolve } = require('path')
// 返回运行文件所在的目录
console.log('__dirname : ' + __dirname)
// __dirname : /Desktop
// 当前命令所在的目录
console.log('resolve : ' + resolve('./'))
// resolve : /workspace
// 当前命令所在的目录
console.log('cwd : ' + process.cwd())
打印出resolve、cwd是执行Python脚本的路径。将node_modules文件夹放入python脚本当前目录后,可以正常执行,不报错了。


使用Python脚本通过selenium启动electron应用时遇到TypeError,问题根源在于node模块加载失败。通过将js中相对路径改为绝对路径,并在执行前打印路径,发现需将node_modules放入Python脚本目录才可避免错误。
4063

被折叠的 条评论
为什么被折叠?



