2011-07-14 18 views
2

Selenium IDEでこのアンカータグをクリックするのを自動化するにはどうしたらいいですか?私は2つの異なる方法を試しましたが、どちらも効果がありませんでした。これがポップアップウィンドウにあることが重要ですか?私は他のコントロールを働かせることができます。Selenium IDEがポップアップウィンドウのclickAndWaitコマンドでスタックする

HTML:

<のhref = "javascriptを:__ doPostBack( 'EditTestResult $ EditOverallTestResults $ BucketMove $ LBuSelect'、 '')" クラス= "標準テキスト" ID = "EditTestResult_EditOverallTestResults_BucketMove_LBuSelect"> - >

コマンド:動作しませんでした</A>

セレンコードがclickAndWait
対象:ID = EditTestResult_ EditOverallTestResults_BucketMove_LBuSelect
値:

セレンコードは動作しませんでした:

コマンド:clickAndWait
ターゲット:リンク= - >
値:

を====== ====================

2011/08/7更新

だから私はこの情報を得ました。私は私の "clickAndWait" コマンドでスクリプト( "S" のキープレス)を起動すると

オプション1:

コマンド:addSelection
対象:ID = idofmultiselect
値このコマンドの前のコマンドは以下のとおりです。上記のとおり、両方のバージョンでうまく動作します。 これは、IDEがclickAndWaitコマンドでSTUCKを取得したときに、この複数選択を選択したときです。私は "addSelectionAndWait"を使ってみましたが、それは修正されませんでした。

==========================

2011年8月8日更新

私は置くことができません実際のダイナミックコードが入っているので、これで十分です。

<html> 

<body> 

<form> 

<table cellpadding="0" cellspacing="0" border="0"> 
    <tr> 
     <td><span id="EditTestResult_EditOverallTestResults_BucketMove_LblUnselectedBox">Does Not Have Results...</span><br> 
      <select size="4" name="EditTestResult$EditOverallTestResults$BucketMove$LBoUnselected" multiple="multiple" id="EditTestResult_EditOverallTestResults_BucketMove_LBoUnselected" style="height:100px;width:220px;"> 
     <option value="214">Cocaine/Metabolite - Positive</option> 

     <option value="213">Opiate - Positive</option> 
     <option value="37">Phencyclidine - Positive</option> 
     <option value="58">THC Metabolite - Positive</option> 

    </select></td> 
     <td vAlign="middle"> 
      <table> 
       <tr> 

        <td><a id="EditTestResult_EditOverallTestResults_BucketMove_LBuSelect" class="standard-text" href="javascript:__doPostBack('EditTestResult$EditOverallTestResults$BucketMove$LBuSelect','')">-&gt;</a></td> 
       </tr> 
       <tr> 
        <td><a id="EditTestResult_EditOverallTestResults_BucketMove_LBuUnselect" class="standard-text" href="javascript:__doPostBack('EditTestResult$EditOverallTestResults$BucketMove$LBuUnselect','')">&lt;-</a></td> 
       </tr> 
      </table> 
     </td> 
     <td><span id="EditTestResult_EditOverallTestResults_BucketMove_LblSelectedBox">Has Results...</span><br> 

      <select size="4" name="EditTestResult$EditOverallTestResults$BucketMove$LBoSelected" multiple="multiple" id="EditTestResult_EditOverallTestResults_BucketMove_LBoSelected" style="height:100px;width:220px;"> 
     <option value="206">Amphetamine - Positive</option> 

    </select></td> 
    </tr> 
</table> 


<script type="text/javascript"> 
//<![CDATA[ 
var theForm = document.forms['Form1']; 
if (!theForm) { 
    theForm = document.Form1; 
} 
function __doPostBack(eventTarget, eventArgument) { 
    alert("doing postback"); 
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) { 
     theForm.__EVENTTARGET.value = eventTarget; 
     theForm.__EVENTARGUMENT.value = eventArgument; 
     theForm.submit(); 
    } 
} 
//]]> 
</script> 

</form> 

</body> 
</html> 

====================

2011年8月22日更新:

は、ASP.NETの検証が発生する可能性がありますことを発見暗黙的に失敗するclickAndWaitコマンドSeleniumでスクリプトを実行している場合、Selenium IDEの検証メッセージは、Webブラウザを手動で使用した場合のようには表示されません。したがって、コマンドが失敗するように見えるかもしれませんが、実際にはフォームは送信できず、マウスでボタンを手動でクリックすると通常通りに赤色の確認メッセージがブラウザに表示されません。それを行うclickAndWaitコマンド)。それは私の問題の束を固定しましたが、これは問題ではありません。私はまだ答えを探しています。

答えて

5

ここでの問題は同期の可能性が高いです。これがAJAXであれば、AndWaitメソッドはすべてあなたにとって役に立たない。

クリックだけで、WaitForElementPresentかそれに類似するものを試してみてください。

AndWaitは、ブラウザに完全な物理ページがある場合にのみ機能します。これははるかに大きなフォームの一部であるように見えます。あなたが提供したコードを考えれば、これが起こっていると私は驚くでしょう。

も参照してください。http://saucelabs.com/blog/index.php/2011/02/advanced-selenium-synchronization-with-latches/

+0

ありがとうございます。はい、これはフォームに含まれるものの単なるスニペットです。私は今日後でこれをテストします。私はそれが完全なポストバックをしていると思います。それは "__doPostBack"を呼び出します。私たちのアプリの機能の束は今、AJAXを使用しています...それは私が変換しようとしてきたものです。しかし、私はこれを撃つだろう。助けを求める投票。私はそれが動作するかどうかをお知らせします – MacGyver

+0

私の他の選択肢は、別のコントロールを使用するだけです。ユーザーに余分なクリックをする必要はありません。このフォームの目的は、雇用前の薬物検査のための検体のリストを取得することです。だから、 " - >"ボタンをクリックするだけで、コントロール+クリックされたものが正しいコントロールに移動します。 – MacGyver

+0

これは正解ではありませんが、私は戻ってこれを再現するつもりはありません。私はあなたにいくつかの無料ポイントを与えるでしょう。私は現在WebDriverを使用しています。 Selenium IDEには非常に多くのバグがあります。 – MacGyver

関連する問題