【发布时间】:2016-03-08 15:44:21
【问题描述】:
您好 * 成员,
我一直在搜索该网站(以及网络的其他部分)以寻找这个问题的答案,但我所有的搜索查询都返回了 Watir 的令人敬畏的功能......我似乎是少数遇到的人之一这个特殊的问题。我希望那里的人能给我一个简单的答案:)
我正在研究网站测试自动化。当前的测试集是用 Cucumber/Ruby/Selenium-Webdriver/Capybara 编写的。我个人对结合 Cucumber 和 Ruby 切换到 Watir-Webdriver 感兴趣,但我正在努力解决以下问题:
每次我运行黄瓜测试时,Watir 都会打开不是一个,而是两个浏览器屏幕。它似乎想要启动一个空白屏幕(它只是转到我默认配置的站点),以及另一个执行实际测试步骤的浏览器屏幕。
请记住,我对此很陌生,只是在遵循初学者教程时遇到了这个问题。目前还没有什么特别的。
在我的“Support/env.rb”文件中,我有以下内容:
require "cucumber"
require 'watir-webdriver'
app_host = ENV['apphost']
Before do
@browser = Watir::Browser.start app_host, :firefox
end
Before do |scenario|
@scenario_tag = scenario.source_tag_names
@browser.cookies.clear
end
at_exit do
@browser.close
end
我的步骤文件中的第一位(GoogleSearch.rb -- 是的,就是这么基本):
require_relative "../support/env"
Given(/^that I have gone to the Google page$/) do
@browser.goto 'http://www.google.com'
end
现在,当我运行此测试时,我希望只启动一个浏览器。但相反,自动化会启动两个浏览器屏幕。一个只是留在后台什么都不做,另一个包含测试步骤。
再次,我已经搜索了一段时间(我通常很擅长),但我在任何地方都没有找到我的问题的答案。我让它工作的唯一方法是从我的步骤文件中的一个步骤开始,启动一个浏览器(而不是在 env.rb 文件中这样做)。但我不想通过打开浏览器来开始每个测试..
任何帮助将不胜感激。如果需要我提供更多信息,我会尽快更新。
提前致谢!
【问题讨论】:
-
提供的 env.rb 是否准确?您同时拥有
@browser和browser令人怀疑。 -
嗨贾斯汀,感谢您的回复。我已经用当前的 env.rb 内容更新了我的起始帖子。在看到您关于使用@browser 和浏览器的评论后,我确实将“browser.close”更改为“@browser.close”。但是,在启动一个场景时,我仍然会得到两个浏览器实例...
标签: cucumber watir watir-webdriver