Есть ли способ реализовать хромированный драйвер в исполняемый файл - PullRequest
1 голос
/ 05 мая 2020

Я создал сценарий, который автоматически выполняет вход на веб-сайт, и создал файл .exe с помощью pyinstaller. Есть ли способ реализовать хромированный драйвер в этом .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 находится в том же каталоге

1 Ответ

0 голосов
/ 06 мая 2020

Сам 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 с этим файлом spe c: pyinstaller myscript.spec myscript.py

Вот исчерпывающий прохождение от аналогичного вопроса

...