Новый браузер открывается для каждой выполняемой функции - WATIR - PullRequest
0 голосов
/ 07 ноября 2018

Мы используем каркас 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

Ответы [ 2 ]

0 голосов
/ 22 ноября 2018

Решением этой проблемы было удаление блока before do из файла env.rb.

Это предотвратило вызов нового экземпляра Firefox перед каждым сценарием.

0 голосов
/ 08 ноября 2018

Ответ такой же, как здесь: https://stackoverflow.com/a/17624188/4072371

При этом я чувствую себя обязанным указать, что в идеале вы можете сделать свои тесты независимыми друг от друга.

...