1

我和我的同事是 Watir 和 Cucumber 的新手。他使用 Watir 编写了一些小的 ruby​​ 脚本,我现在正试图将它们“翻译”成 Cucumber。

在他的一项有效的测试中,他执行了以下操作:

b = Watir::Browser.new :ie
b.object(:id, 'TabContainer').click  

我发现使用对象对我使用 Cucumber 不起作用,所以我做了以下事情:

@ie = Watir::IE.new
@ie.element(:id, 'TabContainer').click

有问题的对象是:

<object height="120" width="50" type="application/x-shockwave-flash" id="TabContainer"
   name="TabContainer" data="/en-gb/swf/helpbounce.swf" style="visibility: visible;">
   <param name="allowScriptAccess" value="always">
   <param name="wmode" value="transparent">
</object>

但是,单击事件对我不起作用。现在,我知道它不作为属性存在,但它存在于 helpbounce.swf 中,并且仅 WATIR 版本可以正常工作。非常欢迎任何建议或提示。

4

2 回答 2

2

这不是一个答案(因为我认为贾斯汀在这里已经解决了这个问题),而是一个非常强烈的建议。

1)如果您还没有这样做,请立即购买并阅读实用程序员的“黄瓜书”。它会让你在 Cucumber 上走上正确的道路(虽然我自己不会使用作​​者喜欢的 Capybara,但这是个人选择)

2) 尽快了解Page Objects,它会让你的代码更干净,更容易维护。我们在 Test Automation Bazaar 上就页面对象、黄瓜和 watir 进行了 4 小时的精彩会议。你可以在这里找到它,你花的每一分钟时间来观看它并“跟随”所有的练习等都是值得的。

于 2012-04-19T21:04:24.613 回答
1

黄瓜的使用不应影响 Watir 是否有效。

我的猜测是你的 env.rbrequire 'watir'在它应该使用的时候使用require 'watir-webdriver'

这种猜测的原因是,根据您之前的一个问题,您似乎安装了 Watir 和 Watir-Webdriver。那时你的 env.rb 正在使用 Watir(不是 Watir-Webdriver)。

但是,鉴于您提供的代码示例,您同事的测试正在使用 Watir-Webdriver(如使用 所示b = Watir::Browser.new :ie),而您尝试在 Cucumber 测试中使用 Watir(如使用 所示@ie = Watir::IE.new)。

所以我认为解决您的问题的方法是将您的 Cucumber 测试切换为使用 Watir-Webdriver。

于 2012-04-18T13:53:06.043 回答