簡體   English   中英

Python + Selenium:驅動程序路徑

[英]Python + Selenium: Path to driver

是否有可能運行 Python + Selenium 腳本而不在 Python 行中的每個腳本中輸入exe文件的路徑:

driver = webdriver.Chrome().

同樣的問題適用於“IE Driver”、“Edge Driver”和“Gecko Driver”。 可以通過一些通用的 python class 來完成嗎?我應該為它創建一些額外的文件嗎? 還是集成開發環境配置的問題?

我會很感激你的專家的話。

您可以更改源代碼 只需將executable_path的值分配給chromedriver路徑即可。 讓我解釋 -

當你“正常”輸入這個 -

driver = webdriver.Chrome(r"path\chromedriver.exe")

WebDriver對象在其類中初始化。 類文件位於//selenium_folder/webdriver/chrome/webdriver.py。 在其中,如果您注意到__init__方法,則它接受executable_path的參數。 所以你可以簡單地做 -

def __init__(self, executable_path="chromedriver", port=0,
                 options=None, service_args=None,
                 desired_capabilities=None, service_log_path=None,
                 chrome_options=None):

     executable_path = "path\chromedriver.exe"

這樣,以下代碼將成功運行驅動程序 -

driver = webdriver.Chrome()

無論您使用哪種操作系統,您都有多種選擇來實現這一目標。

  • 首先,您可以將驅動程序文件(如chorme_driver.exe )放在python文件的相對文件夾中。 (這是我通常做的)

driver = webdriver.Chrome('../chromedriver.exe')

driver = webdriver.PhantomJS('../phantomjs.exe')

  • 您可以在Windows,Linux或...中的PATH變量中將地址放到chrome driver

driver = webdriver.Chrome('chromedriver.exe')

driver = webdriver.PhantomJS('phantomjs.exe')

  • 您還可以設置環境變量並始終依賴於此。

driver = webdriver.Chrome(os.environ.get('CHROME_DRIVER_PATH'))

driver = webdriver.PhantomJS(os.environ.get('PHANTOMJS_DRIVER_PATH'))

是的,您必須將驅動程序存儲在PATH中。 例如我的位於C:\\python\\python(version)\\lib\\site-package\\selenium\\webdriver ,然后將驅動程序存儲在適當的文件夾中。 還要確保添加機器環境變量的路徑。

這對我有用。 我將驅動程序文件與我正在編碼的應用程序放在同一個文件夾中,代碼中的行如下所示:

web = webdriver.Chrome('./chromedriver.exe')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM