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

Selenium 为正在执行的每个功能打开新浏览器-WATIR,selenium,firefox,cucumber,watir,gherkin,Selenium,Firefox,Cucumber,Watir,Gherkin,我们将Selenium Cumber框架与Watir结合使用 我们将一个场景分割为不同的功能,所有这些功能都需要在一个浏览器上运行才能完成场景 当前1个功能完成,然后关闭浏览器,然后打开Firefox的新实例;不保留前一个实例的状态 为了有效地运行测试,我们需要在同一个浏览器实例上完成这些功能 如何防止在执行每个功能后打开新的浏览器实例 以下是我们的测试结构: W2.1.1-Set_Project_Information.feature W2.1.2-Select_Shotlist.featur

我们将Selenium Cumber框架与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实例