为什么Watir-webdriver打开两个浏览器?

时间:2017-04-05 15:02:32

标签: ruby cucumber watir-webdriver

我正在使用Cucumber / Ruby / Selenium-Webdriver / Capybara进行网站测试自动化。我想与Cucumber和Ruby一起切换到Watir-Webdriver,但我正在努力解决以下问题:

每次运行我的黄瓜测试时,Watir会打开两个浏览器窗口,一个空白屏幕到我默认配置的网站,再加上另一个执行实际测试步骤的网站。

我的支持/ env.rb'文件有:

require 'allure-cucumber'
require 'rspec'
require 'watir-webdriver'

AllureCucumber.configure do |c|
  c.output_dir = 'D:\Test\result'
  c.clean_dir  = true
  c.tms_prefix      = '@PRACTEST--'
  c.issue_prefix    = '@JIRA++'
  c.severity_prefix = '@URGENCY:'
  c.tms_prefix =  ''
end

我的步骤文件以:

开头
require 'watir-webdriver'
require 'cucumber'
require 'rspec'
require_relative 'D:\EntelTest\src\PageObject\home_page.rb'

Before  do
  @test = AbstractPage.new(Watir::Browser.new :ff)
  @test.full_size
end

After  do
  @test.quit
end


home_page = nil


When(/^Go to home page$/) do
  home_page  = @test.goToHomePage

end

2 个答案:

答案 0 :(得分:0)

你可以在hooks.rb之前和之后放这些吗?在steps.rb文件中,只需提及黄瓜步骤的代码,然后再声明browser = Watir::Browser.new :ff

最佳做法是将其放入hooks.rb中。 env.rb通常应该包含所需的功能和服务器环境代码。 :)

答案 1 :(得分:0)

你在步骤文件中放入的内容应该放在hooks.rb文件中。

请安装名为testnow的宝石。 它将帮助您使用所有预配置的浏览器创建大多数标准且易于使用的watir-webdriver框架。

步骤:

1) gem install testnow   
2) testnow watir_cucumber_now

您将安装dependecies,输入Y以完全设置它。 它将使用示例场景创建健壮的框架。

只需使用以下任何命令运行示例场景。

rake testnow BROWSER=firefox
rake testnow BROWSER=chrome
rake testnow BROWSER=opera

只有在预先安装了浏览器并且在PATH变量中存在webdriver时,这才有效。

请发表评论以获取更多信息。

希望它有所帮助!!