PyInstaller .spec 文件未按预期创建 Chrome Webdriver 二进制文件

PyInstaller .spec file not creating Chrome Webdriver binary as expected

提问人:Kero 提问时间:12/31/2021 最后编辑:Kero 更新时间:1/1/2022 访问量:300

问:

我正在尝试创建 Chrome 网络驱动程序二进制文件以捆绑到我的可执行文件中,但 .spec 文件没有按照我的要求执行。

我的项目代码如下:

from selenium import webdriver
driver = webdriver.Chrome("/Users/me/.wdm/drivers/chromedriver/mac64/96.0.4664.45/chromedriver")

这是正确的,当我在 IDLE 中运行时,一切正常。

这是 PyInstaller 的“project.spec”文件的相关部分 -

a = Analysis(['project.py'],
             pathex=['/Users/me/Desktop/project'],
             binaries=[('/Users/me/.wdm/drivers/chromedriver/mac64/96.0.4664.45/chromedriver', './selenium/webdriver')],
             datas=[],

selenium 和 webdriver 文件夹在 dist 中正确构建 -
/dist/project/selenium/webdriver

但是在这里我有两个文件夹,它们都不包含 Chrome 网络驱动程序 -
/firefox
/remote

只是一个带有 FF webdriver 和 .xpi 文件的 Firefox 文件夹(我不使用并且从未在我的任何代码中提到过一次),以及包含“getAttribute.js”和“isDisplayed.js”的“remote”文件夹。

我显然已经尝试运行可执行文件,在需要 webdriver 之前都很好,此时它会抛出 -

AttributeError: module 'selenium.webdriver' has no attribute 'Chrome'

我怎样才能让它工作?我见过几个类似的问题,但没有一个对我有帮助。 我是 PyInstaller 的新手,以前从未创建过这样的二进制文件。我错过了什么?

python selenium selenium-webdriver pyinstaller chrome-web-driver

评论


答:

0赞 undetected Selenium 1/1/2022 #1

看看文档,可能不是 ChromeDriver 的绝对路径,二进制参数应该采用浏览器可执行文件的绝对路径,例如 chromefirefox 等。