Ubuntu

通過 Selenium 執行無頭 Firefox 時出錯

  • August 30, 2020

我正在嘗試通過 Selenium 通過 SSH 在遠端機器(執行 Ubuntu 16.04)上執行 headless firefox。但是,這給了我一個“錯誤:GDK_BACKEND 與可用顯示不匹配”錯誤。我的主機執行 Windows。我不想看到圖形輸出。它只是用於硒測試。

我正在使用 X Virtual Frame Buffer 作為虛擬驅動程序:

Xvfb :10 -screen 0 1024x768x16 &

對於這種特定情況,我還導出了值為 10 的 DISPLAY 環境變數。

我哪裡錯了?

編輯:當我在執行 xvbf 後通過 SSH 在命令行中簡單地執行“sudo firefox”時,不會引發任何錯誤。只有在通過 selenium 執行 firefox 時才會引發錯誤。

更多細節:-

我通過 selenium 呼叫 firefox。selenium 獨立伺服器給出的確切錯誤是:-

17:52:55.218 INFO - Executing: [new session: Capabilities     [{browserName=firefox, platform=ANY,     firefox_profile=UEsDBBQAAAAAAJuOD0nf9RXUMgAAA...}]])
17:52:55.230 INFO - Creating a new session for Capabilities   [{browserName=firefox, platform=ANY, firefox_profile=UEsDBBQAAAAAAJuOD0nf9RXUMgAAA...}]
org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host     127.0.0.1 on port 7055 after 45000 ms. Firefox console output:
Error: GDK_BACKEND does not match available displays

顯然這是由於 Firefox 48 和 Selenium 之間的不兼容造成的(selenium 擴展未在 firefox 48 中籤名,而 firefox 48 僅執行已簽名的擴展)。我只使用了 chrome,因為我的案例不是非常特定於瀏覽器的。

我用 Firefox 解決了這個問題。步驟是:

  1. 將 Firefox 從 49.0 降級到 46.0
  2. 通過命令安裝 XVFBsudo apt-get install xvfb
  3. 使用命令執行 Seleniumxvfb-run java8 -jar selenium-project.jar

我的 Selenium 版本是2.53.1Ubuntu 14.04。

引用自:https://unix.stackexchange.com/questions/303547