为正在执行的每个功能打开新浏览器 - WATIR

New browser opens for every feature being executed - WATIR

我们将 Selenium Cucumber 框架与 Watir 一起使用。

我们已将一个场景拆分为不同的功能,所有这些功能都需要 运行 在一个浏览器上才能完成该场景。

目前完成1个功能,然后关闭浏览器,然后打开一个新的Firefox实例;不保留前一个实例的状态。

为了让我们的测试 运行 有效,我们需要在同一个浏览器实例上完成这些功能。

我们如何防止在执行每个功能后打开新的浏览器实例?

这是我们的测试结构:

W2.1.1-Set_Project_Information.feature
W2.1.2-Select_Shotlist.feature
W2.1.3-Flag_shotlist_requiring_physical_inspection.feature
W2.1.4-Select_applicable_shotlist_task.feature
W2.1.5-Record_Primary_Applicant.feature

我的env.rb:

require 'rubygems'
require 'watir'
require 'selenium-webdriver'
require 'rspec'

browser = Watir::Browser.new :firefox

Before do
#browser = Watir::Browser.new :chrome
@browser = browser
@browser.goto "https://test.branzartisan.com"
@browser.window.maximize
sleep(5)
puts "###Browser Invoke###"
end

After do |scenario|
@browser.cookies.clear
  @browser.refresh
end

答案与此处相同:

话虽这么说,但我觉得有义务指出,理想情况下,您可以使测试彼此独立。

此问题的解决方案是从 env.rb 文件中删除 before do 块。

这阻止了在每个场景之前调用新的 Firefox 实例。