加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

selenium打包的可执行EXE文件出现缺少文件错误

(2024-06-20 19:15:11)
分类: python
将Python程序使用pyinstaller进行打包,便于分发和执行。
但执行EXE文件时,提示no such file or directory:getAttribute.js,这是在\selenium\webdriver\remote\目录下的一个文件。
翻遍中文网络,没有找到合适的解决方式。偶尔在英文网站上看到解决方案:
  1. 它可能需要在构建时添加驱动程序可执行文件。 即chromedriver.exe
  2. 构建时可能还需要添加一些与硒相关的包文件getattributes.js例如文件。这是我的项目所必需的。
  3. pyinstaller 会将这些文件解压缩到 Windows用户的 AppData 中的临时文件夹中。因此,在您的代码中,您的相对路径可能需要使用如下示例函数进行解析(如果您在 vs code 中运行代码,或者您正在通过 pyinstaller 可执行文件运行,则路径应按函数解析)。
对于第 1 项和第 2 项,您可以对它们分别使用 pyinstaller 的 --add-binary 和 --add-data 功能。也可以在带有 add-files 列表的 *.spec 文件中执行此操作,在您第一次运行 pyinstaller 之后,我更喜欢命令行选项,如下所示。

pyinstaller ./app.py  --onefile --noconsole --add-binary "./driver/chromedriver.exe;./driver" --add-data "C:\Users\YOUR_USER_NAME\.conda\pkgs\selenium-3.141.0-py38h2bbff1b_1000\Lib\site-packages\selenium\webdriver\remote;selenium\webdriver\remote

参照此中方式,将我的打包命令修改为:
pyinstaller zhuangweiyun.py -F --add-data e:\ProgramData\An
aconda3\Lib\site-packages\selenium\webdriver\remote\getAttribute.js;selenium\web
driver\remote --add-data e:\ProgramData\Anaconda3\Lib\site-packages\selenium\web
driver\remote\isDisplayed.js;selenium\webdriver\remote

完美解决No such file的问题。
参考网址:/questions/70329716/filenotfounderror-errno-2-no-such-file-or-directory-selenium-webdriver-remo

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有