我的同事和我是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唯一版本工作正常。 我们非常欢迎任何建议或提示。
答案 0 :(得分:2)
这不是一个答案(因为我认为贾斯汀在这里已经解决了这个问题),但更多的是一个非常强烈的建议。
1)如果您还没有这样做,请立即购买并阅读实用程序员的“The Cucumber Book”。它将让你与黄瓜保持正确的道路(虽然我自己不会使用Capybara,作者喜欢,但这是个人选择)
2)尽快了解页面对象,它将使您的代码更清晰,更容易维护。我们在Test Automation Bazaar上有一个很棒的4小时会话页面对象,黄瓜和watir。你可以找到它here每时每刻都值得观看它并“跟随”所有的练习等。
答案 1 :(得分:1)
使用黄瓜不应影响Watir是否有效。
我的猜测是,当您的env.rb应该使用require 'watir'
时,它正在使用require 'watir-webdriver'
。
这种猜测的原因是基于您之前的questions之一,看起来您安装了Watir和Watir-Webdriver。那时你的env.rb正在使用Watir(而不是Watir-Webdriver)。
但是,考虑到您提供的代码示例,您的同事的测试正在使用Watir-Webdriver(通过使用b = Watir::Browser.new :ie
),因为您尝试在Cucumber测试中使用Watir(如所见)通过使用@ie = Watir::IE.new
)。
所以我认为您的问题的解决方案是将您的Cucumber测试切换为使用Watir-Webdriver。