0

私はwatirには不慣れで、extjsを使用するWebアプリをテストしています。アプリには、サブ項目を持ついくつかの項目を含むメイン メニューがあります。メイン メニュー項目の 1 つに、そのサブメニューの 1 つと同じテキストがあります。watir webdriver には、次のコードがあります。

jobs_menu = d.p(:text => "Jobs")
jobs_menu.when_present.flash
jobs_menu.click
jobs_submenu_item = d.a(:text => "Jobs")
jobs_submenu_item.when_present.flash
jobs_submenu_item.click

これは、最初のメニューをフラッシュしてクリックし、サブメニューをドロップすることになっています。次に、点滅してサブメニュー項目をクリックします。これにより、3つの異なるブラウザーで3つの結果が得られます。

Firefox - 最初のメニューが点滅してドロップし、サブメニュー項目が点滅するがクリックされない

Chrome - 最初のメニューが点滅してドロップし、サブメニュー項目が点滅してクリックします OK - やった!

IE - 最初のメニューが点滅してドロップし、その後消えてサブメニュー項目が ElementNotVisibleError で見つからない

興味深いことに、ドロップダウン テキストがサブメニュー テキストとは異なる別のメニューに注目すると、Firefox と Chrome の両方が正常に動作します。IE はまだ ElementNotVisibleError を返します。

これを 3 つのブラウザすべてで同じように動作させるにはどうすればよいですか?

4

1 に答える 1

1

場合によっては、メニューの表示にクリックは必要なく、メニュー上にマウスを置くことでトリガーできます。その場合、メニューを表示するには、.click の代わりに .hover を試すとうまくいくかもしれません。

これらのカスタム コントロールの多くの問題は、ブラウザーによって動作が異なることです。つまり、自動化コードでそれを考慮する必要がある場合があります。これは、基本的な HTML 要素を使用しないこのようなカスタム コントロールの欠点です。

于 2012-04-03T21:40:28.033 に答える