私はWatiNを使ってオートコンプリートドロップをテストしています。オートコンプリートドロップダウンメニューWatiNを使用したテスト
3文字が入力された後にユーザーがフィールドに入力すると、jqueryのオートコンプリートがトリガーされ、順序付けられていないリストが表示されます。ユーザーがリストから選択することは必須です。
WatiNを使用してリストからオートコンプリートを選択/トリガーすることができません。ここで
は、開発者が使用しているHTMLの一部です:
<ul class="ui-autocomplete ui-menu ui-widget ui-widget-content ui-corner-all" role="listbox" aria-activedescendant="ui-active-menuitem" style="z-index: 1; display: block; width: 275px; top: 301px; left: 262px; ">
<li class="ui-menu-item" role="menuitem"><a class="ui-corner-all" tabindex="-1">ABC DEFGHIJ </a></li>
<li class="ui-menu-item" role="menuitem"><a class="ui-corner-all" tabindex="-1">ABC KLMNOPQ </a></li>
</ul>
彼らはjQueryのUIのオートコンプリートウィジェットを使用している:jQueryのUIのオートコンプリートのテストのためにグーグルでhttp://jqueryui.com/demos/autocomplete/
、私はこのスタックオーバーフローQ &ましたA: Testing JQuery autocomplete ui with cucumber
重要な情報であると思われる内容が含まれています。「最初にマウスオーバーしてからクリックする必要があります」
は、その後、私はWatiNのマウスオーバーためにGoogleで検索し、これには、少しのコードサンプルありhttp://blogs.telerik.com/testing/posts/08-05-29/how_to_select_radcombobox_item_with_watin.aspx が見つかりました:
Div divStudent3 = ie.Div(Find.ById("idRadComboBox_c2"));
divStudent3.FireEvent("onmouseover");
divStudent3.Click();
を(我々の開発コードは、これは単なる一例である制御telerik使用していない明確にする)
フィールドに- 目標値の一部を入力し(例:私はこれを駆動する方法のための計画を持っていたと思った。この時点で
「ABC」)
- は、そのテキストを希望する値(例えばある
<li>
要素を見つけ、それがその<ul>
要素内 - 存在するまで待機し、
- 火その
<li>
要素 - の「のonmouseover」イベントが
<li>
要素をクリックします。
<ul>
クラス「UI-オートコンプリート」を持つ要素の表示スタイルと「ブロック」を検索します「ABC DEFGHIJ」)
私は2つの問題を発見した:まず、入力フィールドにWatiNのタイピングがメニュー項目をクリックすると、オートコンプリートが発生する原因となっていないことを第二に 、オートコンプリートメニューの外観をトリガで非常に悪かったとこと。
入力フィールドにダウンローキーイベントを送信するとメニューが表示されるようになりましたが、トップメニュー項目は にハイライト表示されませんでした(手動で入力して下矢印キーを押した場合)。 (IDをui-active-menuitemに設定することを含む)を正しく起動すると、ここにリンクがない可能性があります。
誰も私が言及した2つの問題を理解し解決するのに役立つことができますか?
これが問題を解決しました。ありがとうございました。それはそれを選択しているときにリストの項目のハイライトを表示しません(これについてさらに詳しく見ていきます)が、項目を正しく選択しています:) – ghb82
さらに詳しい情報はhttp: /forum.jquery.com/topic/functional-testing-autocomplete-widget-with-watin-watir。また、TextFieldでjqueryを使ってぼかしを行うと、これも機能します(実際にはリストは表示されませんので、これは必要でない可能性があります) – Mark
が私の問題を解決しました。ありがとう – AceMark