簡體   English   中英

Selenium Firefox Python 在無頭模式下運行 初始化驅動程序超時

[英]Selenium Firefox Python running in headless mode Timeout on initializing driver

  • Firefox 版本:60.9.0esr(32 位)
  • Selenium 版本:3.141.0
  • Geckodriver 版本:0.24.0(32 位)

所以目前一切都在非無頭模式下工作。 但我需要在無 GUI 的 linux 服務器中運行這個 python 腳本(因此需要無頭模式)。 出於某種原因,我所有無頭運行的嘗試都會導致 selenium web 驅動程序在初始化時超時。

        from selenium import webdriver

        geckoDriverFilepath = path + "geckodriver24_32.exe"

        opts = webdriver.FirefoxOptions()
        opts.add_argument("--headless")
        opts.add_argument("--width=2560")
        opts.add_argument("--height=1440")

        #initialize driver (breaks/timeouts here)
        driver = webdriver.Firefox(options=opts,executable_path=geckoDriverFilepath)

以下是回溯:

文件“c:\Users\xUser\Desktop\BOMWebService\Backend\code\FirefoxStarter.py”,第 51 行,在 StartFirefox 驅動程序 = webdriver.Firefox(options=opts,executable_path=geckoDriverFilepath)

文件“C:\Users\xUser\Desktop\BOMWebService\Backend\virEnvBOMBackend\lib\site-packages\selenium\webdriver\firefox\webdriver.py”,第 174 行,在init keep_alive=True)

文件“C:\Users\xUser\Desktop\BOMWebService\Backend\virEnvBOMBackend\lib\site-packages\selenium\webdriver\remote\webdriver.py”,第 157 行,在init self.start_session(capabilities, browser_profile)

文件“C:\Users\xUser\Desktop\BOMWebService\Backend\virEnvBOMBackend\lib\site-packages\selenium\webdriver\remote\webdriver.py”,第 252 行,在 start_session 響應 = self.execute(Command.NEW_SESSION,參數)

文件“C:\Users\xUser\Desktop\BOMWebService\Backend\virEnvBOMBackend\lib\site-packages\selenium\webdriver\remote\webdriver.py”,第 321 行,執行 self.error_handler.check_response(response)

文件“C:\Users\xUser\Desktop\BOMWebService\Backend\virEnvBOMBackend\lib\site-packages\selenium\webdriver\remote\errorhandler.py”,第 242 行,在 check_response 中引發 exception_class(消息、屏幕、堆棧跟蹤)

selenium.common.exceptions.WebDriverException:消息:超時

任何指針將不勝感激。 謝謝!

此錯誤消息...

selenium.common.exceptions.WebDriverException: Message: timed out

...意味着GeckoDriver無法啟動/生成新的WebBrowser ,即Firefox 瀏覽器session。

您的主要問題是您使用的二進制文件版本之間的不兼容,如下所示:

  • 您的Selenium 客戶端版本是3.141.0 ,幾乎有點舊。
  • 您的GeckoDriver版本是v0.24.0
  • 您的Firefox版本是v60.9.0esr

因此Selenium Client v3.141.0GeckoDriver v0.24.0Firefox Browser v60.9.0esr之間存在明顯的不匹配


解決方案

  • Selenium升級到當前級別版本 3.141.59
  • GeckoDriver升級到GeckoDriver v0.26.0級別。
  • GeckoDriver 出現在所需位置。
  • GeckoDriver 對非 root 用戶具有可執行權限。
  • Firefox版本升級到Firefox v70.0級別。
  • 通過您的IDE清理您的項目工作區,並僅使用所需的依賴項重建您的項目。
  • 如果您的基礎Web 客戶端版本太舊,請卸載它並安裝最新的 GA 和發布版本的Web 客戶端
  • 重新啟動系統
  • 以非 root 用戶身份執行您的Test
  • 始終在tearDown(){}方法中調用driver.quit()以優雅地關閉和銷毀WebDriverWeb 客戶端實例。

在這里您可以找到關於給定 Geckodriver 版本支持哪些 Firefox 瀏覽器版本的詳細討論?

暫無
暫無

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

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