【发布时间】:2013-07-08 18:32:01
【问题描述】:
我对黄瓜自动化测试很陌生。当我刚开始时,一位同事已经在我的电脑上为我设置好了所有东西,并且(现在他已经走了)我遇到了一个我似乎无法弄清楚的问题。
我正在使用 cucumber 来测试一个 Web 应用程序。过去我运行脚本时,会弹出一个 Internet Explorer,我可以看到正在执行的脚本的每一行。
我最近不得不重新安装 cucumber、ruby、watir 等,并且 Internet Explorer 屏幕不再弹出。
我安装了 Ruby 1.9.3、cucumber (gem install cucumber)、watir (gem install watir)。我错过了什么吗?它是一个额外的插件吗?脚本仍在运行。然而,运行一个 320 步脚本,而不是说 1 分钟 +,现在需要 1.5 秒。没有错误消息。从命令窗口运行时,它看起来就像只是滚动脚本而不是遍历每个步骤。
弹出屏幕到底叫什么?剧情画面?输出画面?
我在 google 上查找它真的很困难,因为我不知道如何参考那个屏幕。
感谢任何帮助。我意识到我可能没有很好地描述这个问题。只需发表评论,我可以尝试进一步澄清。
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
【问题讨论】:
-
请提供一些重现问题的示例代码。
-
我添加了一些代码,但我不能添加太多,因为它与工作相关且保密。请记住,过去我对这个脚本没有任何问题,它没有被破坏,我只是重新安装了所有东西,然后浏览器停止显示。对我来说,这似乎更像是一个安装问题,而不是编码本身,但我不确定
-
你知道你以前用过什么版本的gem吗?执行
gem install watir会安装最新版本的 gem。鉴于您的代码有Watir::IE.start,您之前不太可能使用最新的代码 - 据我所知,Watir::IE.start必须替换为Watir::Browser.start。您可能在 Cucumber gem 更改中遇到类似问题。 -
你在某处做
require 'watir/ie'吗?如果是这样,那么您的原始 watir 版本可能真的很旧 - 也许是 1.6.5。根据你有多少代码,你可能想尝试卸载 watir gem 并尝试旧版本或升级你的代码。 -
正确。 watir 唯一需要的就是
require 'watir'。
标签: ruby cucumber automated-tests watir