2009-04-20 6 views
0

私はセレンの新機能で、テスト問題です。 私は、動的に生成されるハイパーリンク要素のIDを取得しようとしています。 クリック操作は、セレンでクリックすると次のように記録され、太字の部分は動的に生成され、ページには多くあり、サイトごとに異なる場合があります(私はCMSをテストしています)。私はキャプチャしていずれかをクリックしたいと思います。 これは私がやったことです:動的に生成されたいくつかのリンク部分をクリック

storeAttribute | // button @ class onclick = " setLocation(javascript {baseUrlSelection()} ['/ checkout/cart/add/uenc /(a-zA-Z0-9)/product /(0-9)]' ') " | myid


echo | $ {myid} |


clickAndWait | $ {MYID [0]}

それは マイリンクが動作しませんクリックアクションがセレンに記録されたときに次のようになります。 ブトンは、[@ onclickの= "のsetLocation(」http://localhost/mydomaine/index.php/checkout/cart/add/uenc/aHR0cDovL2xvY2FsaG9zdC9NYWdlbnRvSGls

YWlyZURlbW9WMi9tYWdlbnRvZGVtb0hpbGFpcmVWMi9pbmRleC5waHAvY2F0ZWdvcmllMS5odG1sP19fX1NJRD1V/product// ') "> ご了承ください。

+0

から適合しましたか? –

答えて

0

あなたは、XPathを使用することができるアイテムを検索する()関数が含まれています

storeAttribute | //input[contains(@onclick,"setLocation('http://localhost/mydomaine/index.php/checkout/cart/add/uenc/")]@class | myid 
echo | ${myid} 
clickAndWait | //input[contains(@onclick,"setLocation('http://localhost/mydomaine/index.php/checkout/cart/add/uenc/")]@class 

彼らのonclick属性以外の何かによって要素を参照するためにも良いアイデアです。 IDや名前は良い選択でしょう。

1

あなたはSelenium IDEを使用していますか?しかし、他の開発環境を使って何かをする方がはるかに簡単ですが、実際にループをしたい場合は Get the looping user-extension from this page のようなスクリプトを実行してください。

store | 0 | myCurrent 
storeEval | var pattern=new RegExp("\\w*http://localhost/mydomaine/index.php/checkout/cart/add\\w*");var i=0;var total=0;while(i<window.document.getElementsByTagName('input').length){if (window.document.getElementsByTagName('input')[i].id.match(pattern)){window.document.getElementsByTagName('input')[i].id = 'testID_' + total;total=total+1;}i=i+1;}total; | myTotal 
while | storedVars.myCurrent < storedVars.myTotal 
storeAttribute | //input[contains(@id,'testID_${myCurrent}')]@class | myid 
echo | ${myid} 
clickAndWait | //input[contains(@id,'testID_${myCurrent}')] 
store | javascript{storedVars.myCurrent++} 
endWhile 

これらのボタンのクリックは何ですか。ページやそのようなものをポストバックしますか?もしそうなら、あなたはstoreEval | varパターン.... whileループ内。 JavaScriptの機能は、RegExパターン(ボタンIDと一致するように変更する必要がある可能性が高い)と一致するページのすべての入力を、簡単にループできるように順次IDに名前を変更することです。あなたが悪用することができる別のパターンがあれば、それを自由にしてください。

JavaScriptは、here

関連する問題