1

ページが読み込まれた直後に、カスタムメイドの Raphael ラジオ ボタンを選択する Web ページがあります。Selenium IDE 2.0.0 と FireFox 20.0.1 を使用して、適切な ID が選択されていることを確認しようとしています。

私は次のことを試しました...

|getEval | javascript{selenium.browserbot.getUserWindow().jQuery('.response-options.selected').prop('id')} | |

...しかし、結果として null を取得するだけです。試しに、やってみた...

|getEval | javascript{selenium.browserbot.getUserWindow().jQuery('#item-responses-A1_1a_No').prop('id')} | |

...しかし、実行できるにもかかわらず、まだnullになります...

|assertElementPresent | #item-responses-A1_1a_No | |

...そして合格。興味深いことに、私が実行すると...

|getEval | javascript{selenium.browserbot.getUserWindow().jQuery('.response-options.selected')} | |

...(.prop('id') なし)、「オブジェクト オブジェクト」を取得します。

JQuery セレクターを使用して要素のプロパティを取得する方法を知っている人はいますか? user-extensions.js ヘルパー関数を含むソリューションが投稿されているのを見たことがありますが、それは実際には、より少ないテキストを使用して JQuery セレクターを使用できる便利な関数にすぎないようです。

ありがとう!

4

2 に答える 2

3

assertEval はあなたが探しているものです。まず最初に、store コマンドを使用して jquery への参照を保存する必要があります。

次に例を示します。

<tr>
    <td>store</td>
    <td>this.browserbot.getUserWindow().jQuery</td>
    <td>jq</td>
</tr>
<tr>
    <td>assertEval</td>
    <td>${jq}('.response-options.selected').prop('id')</td>
    <td>**the name of the ID you want to match against**</td>
</tr>
于 2013-06-06T16:15:14.340 に答える
0

他の人に役立つ場合に備えて、javascript (私のページの jquery ステートメントを含む) を実行したかっただけで、受け入れられた回答 (Scottingham への 1000 の称賛!) が出発点です。getUserWindow から jQuery で $ 記号を再定義するだけです!

次に、runScript コマンドをターゲットに次のように追加します。

javascript{var $=this.browserbot.getUserWindow().jQuery; ... your javascript there}

例えば

javascript{var $=this.browserbot.getUserWindow().jQuery; $('#myid').click();}

セレンはページに実際に表示されているものだけを見ることを覚えておいてください...そしてそのコンテキストでjqueryセレクターもそうします

于 2019-02-26T14:03:33.977 に答える