【问题标题】:Cucumber no output screen黄瓜无输出画面
【发布时间】: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


【解决方案1】:

我不知道究竟是什么修复了它,但是在听取了不同人的建议和意见后,我基本上卸载并重新安装了 wir 几次。

我还更新了代码,去掉了“require 'rubygems'”并将 Watir::IE.start 替换为 Watir::Browser.start。

问题似乎是我使用的现有脚本基于旧版本的 watir/cucumber/ruby,因此当我不得不重新安装所有内容时,这些脚本不再与所有新版本兼容。

【讨论】:

    猜你喜欢
    • 2011-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多