0

Ajax呼び出しから入力されたウルトラWebグリッドコントロールに値を入力していますが、Ajax呼び出しが完了すると、エラー要素が見つかりません。

完全なシーケンスは次のとおりです。

ページ上の要素:保存とキャンセルのアイコン、テキストボックス、ドロップダウン、アイテムピッカー、ポップアップ、テキストエリア、空白のInfragisticsウルトラウェブグリッド。初めてページが読み込まれると、ウルトラウェブグリッドを除くすべてのコントロールが初期化されます。ここで、ユーザーはアイテムピッカーをクリックし、ポップアップからアイテムを選択します。このアクションは、Ajax呼び出しによって、ページ上のアイテムの詳細とその数量のウルトラWebグリッドを初期化します。

現在、ページ上のウルトラウェブグリッドを参照することはできません。他のすべてのコントロールを参照できることに注意してください。

コマンドシーケンス:

  • clickAndWait | id = lnkNew
  • クリック| id = C1_stdItemNumber_btnAuto
  • クリック| // table [@ id ='C1xstdItemNumberxgrd_main'] // tbody / tr // td / nobr [contains(text()、'textItem')]
  • clickAndWait | // button [@ type ='button']
  • waitForVisible | id = C1xgridActivity_main
  • fireEvent | id = C1xgridActivity_main | 集中
  • fireEvent | css =#C1xgridActivity_rc_0_2> nobr | フォーカス「これは失敗している」
  • clickAt | css =#C1xgridActivity_rc_0_2>nobr"これは失敗しています"
  • doubleClickAt | id =C1xgridActivity_rc_0_8"これは失敗しています"
  • タイプ| id = C1xgridActivity_tb | 1「これは失敗している」
4

2 に答える 2

1

問題を解決しました。

ページをロードすると、DOM ですべての CSS オブジェクトが初期化されますが、後で Ajax 呼び出しが処理されて完了すると、同じページで CSS オブジェクトを再初期化することはできず、Ajax 呼び出しが処理するオブジェクトのみが初期化/移入されます。 .

この問題は、XPATH を使用して解決できます。Ajax 呼び出しが完了した後、ページ上のすべての要素を参照できます。この場合、WaitForElement コマンドは渡されますが、後で要素の値にアクセスしようとすると、CSS を使用して要素を参照するときに失敗します。

于 2012-04-26T06:57:47.863 に答える
0

waitForConditionjQuery ライブラリを使用している場合は、次のコマンドで AJAX 呼び出しの完了を待つことができます。

 waitForCondition | selenium.browserbot.getCurrentWindow().jQuery.active == 0; | 20000
于 2012-04-25T11:26:50.613 に答える