10

jqueryとSeleniumIDe1.0.8で要素を取得しようとしています。

<td>storeValue</td>
<td>$('#result').find('img').filter('[alt=&quot;NameOfPhoto&quot;]').eq(0)</td>
<td></td>

そしてログに私は得る

[error] Element $('#result').find('img').filter('[alt="NameOfPhoto"]').eq(0) not found 

このコマンドをfirebugに入れると、この要素が表示されます:/

なぜそれが機能しないのですか?

編集:あるいは、たとえば、stackoverflowのメインページでJAVAタグを使用して最初のオブジェクトのIDを取得する方法をコードで指定できます。

鬼ごっこ:

<a rel="tag" title="show questions tagged 'java'" class="post-tag" href="/questions/tagged/java">java</a>

例の結果は次のとおりです。

<div id="question-summary-4303985" class="question-summary narrow">

は:

question-summary-4303985
4

6 に答える 6

9

他の投稿に基づいて、私は次のことを試しましたが、うまくいきました。

以下のコードをuser-extensions.jsに追加します。

function jQuery (selector)
{
    return selenium.browserbot.getUserWindow().jQuery(selector);
}

その後、$の代わりにキーワードjQueryを使用して、任意のjQuery関数にアクセスできます。テストしているページがjQueryjsファイルを参照していることを確認してください。

于 2011-07-12T08:46:10.733 に答える
8

Selenium IDEでjQueryを使用するには、その場所を以下に示します。(ページにjQueryをロードしていることを確認してください)

this.page().getCurrentWindow().wrappedJSObject.jQuery()

関数の場所をSelenium変数に格納できます。

<tr>
    <td>store</td>
    <td>this.page().getCurrentWindow().wrappedJSObject.jQuery</td>
    <td>jq</td>
</tr>

次に、次のようなテストでそれらを使用できます。

<tr>
    <td>assertEval</td>
    <td>${jq}('div').attr('foo')</td>
    <td>bar</td>
</tr>

<div foo='bar' />上記はjQueryを使用して一致します。


編集:または、次の方法でアクセスできます。

this.browserbot.getUserWindow().jQuery
selenium.browserbot.getUserWindow().jQuery

代替のソース:http://cssgreut.wordpress.com/2010/12/20/run-selenium-ide-tests-with-jquery-selectors/

于 2011-03-22T08:11:33.897 に答える
0

JavaScriptを使用して現在の日付を保存し、次を使用してSeleniumログコンソールにエコーする例${}

<tr>
    <td>store</td>
    <td>javascript{new Date}</td>
    <td>foo</td>
</tr>
<tr>
    <td>echo</td>
    <td>${foo}</td>
    <td></td>
</tr>

ご覧のとおり、JavaScript式の結果でstoreを使用すると、式javascript{}の周りに追加されます。

javascript{storedVars['bar']}保存された変数を出力するために使用する例。

<tr>
    <td>store</td>
    <td>javascrip{jQuery('#result').find('img').filter('[alt="NameOfPhoto"]').eq(0)}</td>
    <td>bar</td>
</tr>
<tr>
    <td>open</td>
    <td>javascript{storedVars['bar']}</td>
    <td></td>
</tr>

SeleniumのJavaScript:

を使用javascript{alert('hello')}すると、値フィールドでJavaScript/jQueryを実行できます。

どの変数が保存されているかを示すSeleniumの拡張機能もあります:http://reallysimplethings.wordpress.com/2010/09/28/the-stored-variables-viewer-plugin-for-selenium-ide-v1-3-リリース済み/

于 2010-11-23T15:45:44.587 に答える
0

jQueryの代わりに使用してみてください$()。セレンではドル記号の意味が異なります。

編集

私が知る限り、jQueryを使用して要素を選択することはできません。グーグル検索は何も見つかりませんでした。Xpathを使用するだけです。

于 2010-11-17T22:57:01.403 に答える
0

jQueryをSeleniumjarにバンドルしましたか?そうでない場合は、その構文を使用できません。

于 2010-11-30T11:23:02.957 に答える
0

GermanRummのブログからこの手順を試してください

まず、 jQueryのセレクターエンジンであるSizzleをダウンロードし、sizzle.jsを便利な場所に解凍します。
次に、空のuser-extensions.jsファイルを作成します。ちなみに名前は好きな名前にすることができます。
これをuser-extensions.jsに追加します

PageBot.prototype.locateElementBySizzle = function(locator, inDocument) {
  var results = [];
  window.Sizzle(locator, inDocument, results);
  return results.length > 0 ? results[0] : null;
}

3番目に、SeleniumIDEの[オプション]->[オプション...]に移動し、sizzle.jsとuser-extensions.jsを「SeleniumCoreextensions」に追加します。
Selenium IDEを再起動し(すべてのインスタンスを閉じて再度開きます)、「locator」が必要な場所でsizzle =(locator)を使用できるようになります

セレクターは次のようになります。

#result img[alt="NameOfPhoto"]:eq(0)

JQueryセレクターは主にCSSセレクターに由来するため、セレンでも使用できます

css=cssSelector

于 2011-04-09T09:28:29.860 に答える