WATIR和Cucumber似乎不会调用OBJECT标记的onclick事件

时间:2012-04-18 08:33:38

标签: cucumber watir

我的同事和我是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唯一版本工作正常。 我们非常欢迎任何建议或提示。

2 个答案:

答案 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。