Capybara使用Internet Explorer作为浏览器而不是Firefox

时间:2011-07-16 07:14:00

标签: browser capybara

嗨是否有可能告诉Capybara使用IE而不是一直默认为Firefox?

我必须编写一些自动化测试,但该业务仅支持Internet Explorer,因此我需要在此浏览器上运行测试。

感谢。

2 个答案:

答案 0 :(得分:4)

正如marc_s在评论中建议的那样,您可以尝试将IE设置为测试计算机上的默认浏览器。

我也看到一些关于使用Selenium (remote control)使用Capybara的谷歌点击率。

如果您有兴趣,请查看the Selenium docs以了解如何指定浏览器。

编辑我之前发布的教程似乎是Rack-only。不确定,但也许这会起作用:

http://www.johng.co.uk/2010/10/13/run_capybara_and_cucumber_features_in_internet_explorer_on_remote_windows/

Capybara.app_host = "http://192.168.1.37:3000"
Capybara.default_driver = :selenium
Capybara.register_driver :selenium do |app|
  Capybara::Driver::Selenium.new(app,
    :browser => :remote,
    :url => "http://192.168.1.127:4444/wd/hub",
    :desired_capabilities => :internet_explorer)
end

它仍然需要Selenium。

编辑2:

如果您收到此错误:

  

Capybara :: TimeoutError:无法重新同步,ajax请求超时

然后尝试将此代码添加到features/step_definitions/mydefiniation.rb

Before do
  page.driver.options[:resynchronize] = false
end

请参阅有关该特定问题的此问题:Using Capybara for AJAX integration tests

答案 1 :(得分:0)

使用 - >

ignore_mode = opts.delete(:introduction_flakiness_by_ignoring_security_domains)!= false

转到 - >外部库 - selenium-webdriver - lib - selenium - webdriver - ie - bridge.rb

更新模块IE - > def初始化

它包含 -

ignore_mode = opts.delete(:introduction_flakiness_by_ignoring_security_domains)

只需添加!= false即可成为 - >

ignore_mode = opts.delete(:introduction_flakiness_by_ignoring_security_domains)!= false