1

jQueryを使用して変更イベントが要素にバインドされている選択リストがあります。このようなもの:

$("#someId").change(function() {..});

誰かが選択リストで新しいオプションを選択すると、それに応じてUIの別の部分が変更されます。これで、マウスを使用してクリックすると正常に機能しますが、 Watijを使用してテストを作成する場合は、実行していないjQuerychangeイベントを起動する必要があります。

Watijテストは、必要な選択オプションを正しく選択しますが、実際のイベントはトリガーされません。私は電話をかけてみfireevent("change");ましfireevent("onchange");たが、役に立ちませんでした。私も試しましたがie.sendKeys("{ENTER}");ie.sendKeys("{TAB}");これもうまくいかないようです。

何か案は?

4

3 に答える 3

1

私がこれまでに見つけた唯一の解決策は、使用中のjQueryのバージョンをロールバックすることです。現在、バージョン1.4.1(選択ボックスでの変更イベントのテスト可能性に関して問題のあるバージョン)を使用していますが、バージョン1.2.6に戻ると、問題は解決します。

于 2010-03-02T06:44:45.627 に答える
1

$('#someId').trigger('change');イベントを手動で発生させるために使用します。

trigger()のドキュメントを参照してください。

于 2010-03-09T21:42:46.747 に答える
0

コンボ/リストの値がスクリプトで変更された場合、onchangeは起動しないはずです。Watijがそれをどのように行っているかはわかりませんが、これは1つのケースです。

2つ目は、WatijがIEを使用していて(ウィキペディアがrghtである限り)、IEがリストまたはコンボの代わりにシステムコントロールを配置しているため、何かが壊れる可能性があることです。フォームコンポーネントの実現が少し改善されたIE8にアップグレードしてみてください(たとえば、selectは10年後にオプションで「無効」属性を最終的にサポートします)

また、通常のアプリケーションGUIテストアプリに興味があり、Webアプリを備えたブラウザーでそれらを使用することもできます。マクロを記録し、スクリーンショットを確認します。

于 2010-03-13T16:06:15.493 に答える