2017-04-05 87 views
1

我正在使用Cucumber/Ruby/Selenium-Webdriver/Capybara进行网站测试自动化。我想切换到Watir-Webdriver结合黄瓜和红宝石,但我正在努力与以下:为什么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

不太可能与您的问题有关,但Watir-Webdriver已弃用。它已被Watir v6.0或更高版本取代。 –

+1

欢迎使用堆栈溢出。请阅读“[问]”和链接的页面。 SO不是一个讨论列表,它是一个参考网站,就像食谱或百科全书。由于这些简明的问题比冗长的问题更受欢迎;一个小小的个性是伟大的,但请记住,您在本书中创建了一个新条目来帮助其他人,而不是在消息线程中编写代码,以便保持它的重要性。此外,称呼,valedictions和签名是不可取的。 –

+0

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

回答

0

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

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

0

你已经放在步骤文件中应该在hooks.rb文件中。

请安装叫做testnow的gem。 这将帮助您创建大多数标准和易于使用的Watir-webdriver框架与所有预先配置的浏览器。

步骤:

1) gem install testnow 
2) testnow watir_cucumber_now 

它会为您安装依赖条件,输入Y完全建立起来。 它将创建一个强大的框架与示例场景。

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

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

只有在浏览器预装了并且webdriver存在于PATH变量中时,才能使用。

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

希望它有帮助!