嗨是否有可能告诉Capybara使用IE而不是一直默认为Firefox?
我必须编写一些自动化测试,但该业务仅支持Internet Explorer,因此我需要在此浏览器上运行测试。
感谢。
答案 0 :(得分:4)
正如marc_s在评论中建议的那样,您可以尝试将IE设置为测试计算机上的默认浏览器。
我也看到一些关于使用Selenium (remote control)使用Capybara的谷歌点击率。
如果您有兴趣,请查看the Selenium docs以了解如何指定浏览器。
编辑我之前发布的教程似乎是Rack-only。不确定,但也许这会起作用:
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