1

私の同僚と私は、Watir と Cucumber を初めて使用します。彼は Watir を使用していくつかの小さな Ruby スクリプトを作成しており、私は現在それらを Cucumber に「翻訳」しようとしています。

動作する彼のテストの 1 つで、彼は次のことを行います。

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) まだ読んでいない場合は、すぐに実用的なプログラマーから「The Cucumber Book」を購入して読んでください。Cucumber を使用して正しい道を歩み続けることができます (私自身は、著者が好む Capybara を使用したくありませんが、それは個人の選択です)。

2) できるだけ早くページ オブジェクトについて学びましょう。これにより、コードがよりクリーンになり、保守がはるかに容易になります。Test Automation Bazaar で、ページ オブジェクト、キュウリ、および watir に関する 4 時間の素晴らしいセッションがありました。あなたはここでそれを見つけることができます.

于 2012-04-19T21:04:24.613 に答える
1

Cucumber の使用は、Watir が機能するかどうかに影響を与えるべきではありません。

私の推測では、あなたの env.rb は、使用require 'watir'すべきときに使用していると思いますrequire 'watir-webdriver'

この推測の理由は、以前の質問の 1 つに基づくと、Watir と Watir-Webdriver がインストールされているように見えるからです。その時点で、env.rb は Watir (Watir-Webdriver ではありません) を使用していました。

ただし、あなたが提供したコード サンプルを考えると、あなたの同僚のテストは Watir-Webdriverb = Watir::Browser.new :ieを使用しています ( の使用で見られるように@ie = Watir::IE.new)。

したがって、問題の解決策は、Cucumber テストを Watir-Webdriver を使用するように切り替えることだと思います。

于 2012-04-18T13:53:06.043 に答える