selenium 启动electron应用,报js错误问题(TypeError: Cannot read property ‘xxx‘ of undefined)

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

问题描述

用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脚本当前目录后,可以正常执行,不报错了。
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值