0

We are using the Selenium Cucumber framework with Watir.

We have split one scenario into different features and all these features needs to run on one browser to complete the scenario.

Currently 1 feature completes and then the browser is closed and then a new instance of Firefox is opened; not preserving the state of the previous instance.

For our tests to run effectively, we need these features to be completed on the same browser instance.

How do we prevent a new browser instance open after each feature has been executed?

Here is our test structure:

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

My 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
Ryan Achten
  • 495
  • 4
  • 21

2 Answers2

1

The answer is the same as here: https://stackoverflow.com/a/17624188/4072371

That being said, I feel obligated to point out that ideally you can make your tests independent of each other.

titusfortner
  • 4,099
  • 2
  • 15
  • 29
0

The solution to this issue was removing the before do block from the env.rb file.

This prevented the invoking of a new Firefox instance before each scenario.

Ryan Achten
  • 495
  • 4
  • 21