Python 有没有办法将chromedriver实现为可执行文件

Python 有没有办法将chromedriver实现为可执行文件,python,selenium,selenium-chromedriver,pyinstaller,Python,Selenium,Selenium Chromedriver,Pyinstaller,我制作了一个自动登录网站的脚本,并用pyinstaller制作了一个.exe文件。有没有办法将chromedriver实现到这个.exe文件中,这样当我想在另一台计算机上使用我的程序时就不必安装它了?我不知道是否有必要,但这是我的代码: from selenium import webdriver import time try: chrome_options = webdriver.ChromeOptions() chrome_options.add_experimental

我制作了一个自动登录网站的脚本,并用pyinstaller制作了一个.exe文件。有没有办法将chromedriver实现到这个.exe文件中,这样当我想在另一台计算机上使用我的程序时就不必安装它了?我不知道是否有必要,但这是我的代码:

from selenium import webdriver
import time

try:
    chrome_options = webdriver.ChromeOptions()
    chrome_options.add_experimental_option("excludeSwitches", ["enable-automation", "--load-extension"])
    browser = webdriver.Chrome(executable_path="chromedriver.exe", chrome_options=chrome_options)
    browser.maximize_window()
    browser.get("http://website.example")
    browser.switch_to.frame(browser.find_element_by_xpath("/html/frameset/frame[1]"))
    browser.find_element_by_xpath("/html/body/center/table/tbody/tr[5]").click()
    time.sleep(0.5)
    browser.switch_to.default_content()
    browser.switch_to.frame(browser.find_element_by_xpath("/html/frameset/frame[2]"))
    browser.find_element_by_xpath("/html/body/p[2]/table/tbody/tr[4]/td[1]/form/input[1]").click()
    time.sleep(0.5)
    browser.find_element_by_xpath("/html/body/p[2]/table/tbody/tr[4]/td[1]/form/input[1]").send_keys("the password")
    browser.find_element_by_xpath("/html/body/p[2]/table/tbody/tr[4]/td[1]/form/input[2]").click()
except:
    pass

我在同一个目录中有chromedriver.exe

chromedriver.exe本身是一个二进制文件,因此您只需在本地系统上定义chromedriver的路径,并定义相对于dist\myscript的所需位置,因此它看起来像这样:

示例文件-
myscript.spec

a = Analysis(['myscript.py'],
             pathex=['path\\to\\my\\script'],
             binaries=[ ('path\\to\\my\\chromedriver.exe', '.\\selenium\\webdriver') ],
             datas=None,
然后,只需使用以下规范文件运行pyinstaller:
pyinstaller myscript.spec myscript.py


Chromedriver.exe本身是一个二进制文件,因此您只需在本地系统上定义Chromedriver的路径,并定义相对于dist\myscript的所需位置,因此它看起来像这样:

示例文件-
myscript.spec

a = Analysis(['myscript.py'],
             pathex=['path\\to\\my\\script'],
             binaries=[ ('path\\to\\my\\chromedriver.exe', '.\\selenium\\webdriver') ],
             datas=None,
然后,只需使用以下规范文件运行pyinstaller:
pyinstaller myscript.spec myscript.py


对于chromedriver,我必须在.py文件中使用哪个路径?相对路径,因为在另一台计算机上运行时,绝对路径无效。我只使用了代码中的“chromedriver.exe”进行了尝试,但chromedriver.exe必须与script.exe位于同一目录中才能工作,这是script.spec
…a=Analysis(['script.py'],pathex=['C:\\Users\\User\\PycharmProjects\\test'],二进制文件=[((“C:\\Users\\User\\PycharmProjects\\test\\chromedriver.exe”,“\\selenium\\webdriver”)],数据=[],…
那么您希望
chromedriver.exe
在哪个目录中?这没关系,它应该在另一台没有安装chromedriver的计算机上运行,我必须在chromedriver的.py文件中使用哪个路径?一个相对路径,因为在另一台计算机上运行时绝对路径无效。I在我的代码中只使用了“chromedriver.exe”,但chromedriver.exe必须与script.exe位于同一目录中才能工作,这是script.spec
…a=Analysis(['script.py'],pathex=['C:\\Users\\User\\PycharmProjects\\test'],二进制文件=[('C:\\Users\\User\\PycharmProjects\\test\\chromedriver.exe“),“\\selenium\\webdriver”)],datas=[],…
那么您希望chromedriver.exe位于哪个目录中?这没关系,它应该在另一台未安装chromedriver的计算机上运行