2017-06-22 112 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