1

net/watin アプリケーションで、クライアントの Web サイトのコンボボックスからアイテムを選択しようとしています。watin を使用してリストをドロップダウンし、リストから項目を選択 (ハイライト) できますが、選択した項目が上のテキスト ボックスに表示されません。watin の .select() がイベントを発生させていないようです。

コンボボックスに項目の最初の文字を書き込んで、ハイパーテキスト機能を使用して項目を選択することでこれを回避できますが、これは理想的ではありません。

次のコードがコンボボックスに入力されない理由を誰かが指摘できますか? ありがとう

コンボボックス項目を選択するコードは次のとおりです。

    '***Find combobox frame
    Dim ie_tabWell1 As Frame
    ie_tabWell1 = ie.Frame(Find.ById("sframeInner")).Frame(Find.ById("wellFrame")).Frame(Find.ById("tabWell1"))


    '*** Drop down the list (Not really needed)
    ie_tabWell1.TextField(Find.ById("ctlMaritalStatusText__")).ClickNoWait()
    'ie_tabWell1.Span(Find.ByValue("Single")).Focus()

    '*** Select the list item (Selects an item but dosn't populate the combobox)
    ie_tabWell1.SelectList(Find.ById("ctlMaritalStatusList__")).Option(Find.ByText("Single")).Select()        
    ie_tabWell1.TextField(Find.ById("ctlMaritalStatusText__")).Refresh()
4

2 に答える 2

0

この問題は、アプリケーションがリストの作成をトリガーしている方法、つまり、アイテムをクリックしたときにWatiNが起動しないイベントをトリガーしていることが原因であると思います。

同様の問題が発生したため、アイテムを見つけてフォーカスし、マウスクリックでクリックしてイベントを適切に発生させる必要がありました。

もう1つの方法は、document.evalメソッドを呼び出してjavascriptイベントを自分で発生させることでしたが、テストされているアプリケーションが少し多すぎるため、問題が発生し始めています。

于 2011-03-12T00:50:26.303 に答える
0

私のコードはあなたのものと非常によく似ていて、同じ問題を抱えていました

ie.SelectList("drpmcCreateVisitTypeSelect").Option("心臓病相談").Select();

しかし、これをスニペットに追加した後、期待どおりの動作が得られました。Click() イベントを発生させて、アイテムを次のように選択する必要があります。

ie.SelectList("drpmcCreateVisitTypeSelect").Option("心臓病相談").Click();

于 2011-10-07T12:28:17.180 に答える