2017-06-22 148 views
0

我使用黃瓜與水豚和Selenium-Webdriver。到現在爲止,我一直使用Chrome,但該項目也要求對Firefox進行一些跨瀏覽器測試。火狐與水豚和硒-Webdriver

在Firefox中運行時,我只是看到一個空白窗口,網頁不顯示。

這是錯誤我得到:

Selenium::WebDriver::Error::WebDriverError: no sessionId in returned payload 

我的設置是:

Firefox V54 
Cucumber 2.4 
Selenium-webdriver 3.4.0 
geckodriver 0.17 

我的Firefox配置文件:

if ENV['firefox'] 
    Capybara.default_driver = :selenium 
    Capybara.register_driver :selenium do |app| 
    options = { 
     :js_errors => false, 
      } 
    Capybara::Selenium::Driver.new(app, :browser => :firefox) 
    end 

任何想法,爲什麼我只得到在一個空白的窗口Firefox在測試中啓動?

+0

檢查https://github.com/SeleniumHQ/selenium/issues/3621。 「3.0.5的錯誤是因爲firefox升級到52。AFAIK capybara沒有安裝geckodriver。聽起來你需要強制安裝最新版本的geckodriver以及」 – fabersky

回答

1

你聲稱是運行geckodriver v0.17(它應該與你列出的其他版本一起工作),但是那個錯誤意味着你沒有。嘗試運行bundle exec geckodriver --version並查看它返回的內容。我猜你已經安裝了gem,試圖管理geckodriver的下載,而在運行測試時實際上會使用舊版本。如果是這種情況,請查看具體的Gem文檔,瞭解如何更新已安裝的geckodriver。

+0

我有Geckodriver0.17的可執行文件我自己的路。當運行Bundler命令時,我得到以下內容:connect':SSL_connect returned = 1 errno = 0 state = SSLv3讀取服務器證書B:證書驗證失敗(OpenSSL :: SSL :: SSLError) – Tom

+0

@Tom事實上,輸出告訴我你管理geckodriver的寶石中有一個安裝在你的軟件包或系統寶石中,並且它可能不會正確更新到0.17。運行時,Bundler修改了你的路徑,以便在你的系統路徑中選擇寶石提供的二進制文件,看起來就是你正在發生的事情。尋找諸如'webdrivers','geckodriver-helper'等寶石,無論是在你的捆綁包或系統寶石中。卸載或強制他們更新已安裝的geckodriver,然後重試。 –

+0

我已經得到它的工作。我現在面臨一個不可信的連接頁面。你知道如何修改我的個人資料以忽略此信息,以便繞過此頁面嗎? – Tom