我对黄瓜自动化测试很陌生。当我刚开始时,一位同事在我的电脑上为我设置了一切,(现在他已经离开了)我遇到了一个我似乎无法弄清楚的问题。
我正在使用黄瓜来测试Web应用程序。在我运行脚本的过去,弹出一个Internet Explorer,我可以看到正在执行的脚本的每一行。
我最近不得不重新安装黄瓜,红宝石,watir等,并且不再弹出Internet Explorer屏幕。
我安装了Ruby 1.9.3,黄瓜(gem install cucumber),watir(gem install watir)。我错过了什么吗?这是一个额外的插件吗?该脚本仍然运行。但是,而不是说1分钟+运行320步脚本,现在需要1.5秒。没有错误消息。从命令窗口运行时,它看起来只是滚动脚本而不是完成每一步。
什么是弹出屏幕,无论如何?场景画面?输出屏幕?
我很难在谷歌上查找,因为我不知道如何参考该屏幕。
感谢任何帮助。我意识到我可能没有充分描述这个问题。请发表评论,我可以尝试更多地澄清一下。
Feature:
'To go to a webpage'
Scenario:
# ----------
# GO TO PAGE
# ----------
Given that I have gone to the Login page at "url"
#
# ----------
# LOG IN
# ----------
When I add "username" to the Username
When I add "password" to the Password
And click the Login button
Then "Welcome" should be mentioned on the page
脚本定义:
require "rubygems"
require "watir"
puts "Browser is running..."
END {
puts "Closing browser..."
}
BEGIN {
puts "Starting browser..."
}
Given /^that I have gone to the Login page at "(.*)"$/ do |item|
@browser = Watir::IE.start(item)
lnk_found = 0
@browser.links.each do |lnk|
if lnk.id.to_s.matches("overridelink")
lnk_found += 1
end
end
if lnk_found > 0
@browser.link(:id, "overridelink").click
end
# puts "Watir Version: #{Watir::IE::VERSION}"
@browser.maximize
end
#
#
#
When /^I add "(.*)" to the Username$/ do |item|
@browser.text_field(:name, "loginName").set(item)
end
#
#
When /^I add "(.*)" to the Password$/ do |item|
@browser.text_field(:name, "passwd").set(item)
end
#
#
#
Then /^"(.*)" should be mentioned on the page$/ do |item|
if @browser.text.include?(item)
# puts "TEST PASSED. FOUND >#{item}<"
else
puts "*** TEST FAILED ***. >#{item}< was not found."
end
end
目录结构
Cucumber
Testing
lib
login.rb
login.feature
答案 0 :(得分:0)
我不知道究竟是什么修复它但是在接受了不同人的建议和建议后,我基本上已经卸载并重新安装了几次。
我还更新了代码,取出了“require'rubygems'”并用Watir :: Browser.start替换了Watir :: IE.start。
似乎问题是我使用的现有脚本是基于旧版本的watir / cucumber / ruby,因此当我不得不重新安装所有内容时,脚本不再与所有版本的新版本兼容。