你好,有没有可能让Capybara使用IE浏览器而不是默认使用Firefox浏览器?
我需要编写一些自动化测试,但业务只支持Internet Explorer浏览器,因此我需要在该浏览器上运行测试。
谢谢。
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
请参考这个关于特定问题的问题:使用Capybara进行AJAX集成测试
使用 ->
ignore_mode = opts.delete(:introduce_flakiness_by_ignoring_security_domains) != false
前往 -> 外部库 - selenium-webdriver - lib - selenium - webdriver - ie - bridge.rb
更新 IE 模块 -> def initialize
它包含 -
ignore_mode = opts.delete(:introduce_flakiness_by_ignoring_security_domains)
只需添加 != false,使其变为 ->
ignore_mode = opts.delete(:introduce_flakiness_by_ignoring_security_domains) != false