1

我正在尝试使用 rspec 让 selenium(通过 Capybara)在 rails 4、ruby 2.0.0 环境中工作。我尝试通过在我的 spec_helper.rb 中设置配置设置来使用每个浏览器。以 Safari 为例;

Capybara.register_driver :selenium do |app|
  Capybara::Selenium::Driver.new(app, :browser => :safari)
end

对于所有浏览器,我已确保适当的驱动程序(例如 safaridriver)位于$PATH. 测试示例(显然这里没有 Javascript/AJAX,只是想让它工作);

it 'should post to the publication endpoint', :vcr do
  Capybara.current_driver = :selenium
  visit root_path
  Capybara.use_default_driver
end

visit root_path,我收到以下错误;

Selenium::WebDriver::Error::TimeOutError:
       timed out waiting for Safari to respond

环境

rails (4.0.0.beta1)
ruby 2.0.0p0
webmock (1.9.3)
capybara (2.0.2)
selenium-webdriver (2.31.0)

我已经尝试让这个工作两天了,所以非常感谢任何和所有的帮助!

4

1 回答 1

1

SafariDriver 被实现为 Safari 浏览器扩展。这意味着您需要在使用 Safari 和 Selenium 之前安装它。请按照以下步骤操作:https ://code.google.com/p/selenium/wiki/SafariDriverInternals

注册 Apple 的(免费)Safari 开发者计划并为扩展生成签名证书。

构建 SafariDriver 扩展:
./go safari

安装扩展:

启动 Safari
启用开发菜单 (Preferences > Advanced > Show Develop menu in menu bar)
打开 Extension Builder (Develop > Show Extension Builder)
添加新扩展:$SELENIUM_CLIENT/build/javascript/safari-driver/SafariDriver.safariextension
点击​​安装

于 2013-05-17T09:16:01.073 回答