假设我有3个场景大纲,我需要使用Firefox运行场景1,关闭浏览器,然后使用Chrome运行场景2,关闭浏览器,最后使用Firefox运行场景3。 在每个场景之后,有没有办法在Cucumber / Capybara中关闭/退出浏览器?
到目前为止,我已经注册了两个驱动程序,一个用于Firefox,另一个用于Chrome:
Capybara.register_driver :selenium_firefox do |app|
Capybara::Driver::Selenium.new(app, :browser => :firefox)
end
Capybara.register_driver :selenium_chrome do |app|
Capybara::Driver::Selenium.new(app, :browser => :chrome)
end
然后在hooks.rb中,我使用'自定义'标签“@alternate_browser”
Before('@alternate_browser') do
driver = Capybara.current_driver
if driver == :selenium_firefox
Capybara.current_driver = :selenium_chrome
else
Capybara.current_driver = :selenium_firefox
end
end
有没有办法强制浏览器在每个场景后关闭?
编辑:我试过了:page.evaluate_script("window.close()")
page.execute_script("window.close()")
但这两个陈述都没有效果。
答案 0 :(得分:0)
这是你应该做的。
我没试过,但这应该有用。
Capybara.register_driver :selenium_firefox do |app|
Capybara::Driver::Selenium.new(app, :browser => :firefox)
end
Capybara.register_driver :selenium_chrome do |app|
Capybara::Driver::Selenium.new(app, :browser => :chrome)
end
Before('@firefox') do
Capybara.current_driver = :selenium_firefox
end
Before('@chrome') do
Capybara.current_driver = :selenium_chrome
end