我制作了一个自动登录网站的脚本,并用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
以下是类似问题的综合演练