0

Selenium テストを WebDriver に移行しています。特定の場所にある要素の量を特定するために jQuery を使用するテストがあります。このコードは Selenium1 では正常に動作しますが、WebDriver では動作しません。「機能していません」と言うとき、文字列として目的の 3 ではなく、非常に大きくて醜いnullを返すことを意味します。ただし、Selenium1 で実行すると、目的の 3 が文字列として取得されます。

グーグルで調べましたが、この問題の解決に役立つものは見つかりませんでした。

例は実際のコードではなく、単なる例です。元のコードを firebug で実行すると、常に正常に動作します。

HTML コード:

<div id='listOfElements'>
  <div class='items'>
    <ul class='items'>
        <li class='listedElements'>elem 1</li>
        <li class='listedElements'>elem 2</li>
        <li class='listedElements'>elem 3</li>
        <li class='listedElements'>elem 4</li>
    </ul>
  </div>
</div>

JavaScript コード:

window.$("div[id='listOfElements']>div[class='items']>ul[class='items'] li[class*='listedElements']").length

C# コード:

public string GetEval(string script)
{
        var js = _driver as IJavaScriptExecutor;
        return (string) js.ExecuteScript(script);
}

このメソッドは常に null を返しますが、「listeElements」の量が必要です。

バージョン: c# 3.5

Webdriver: 私のファイルシステムによると、今年の 3 月の初め頃にダウンロードしましたが、そのリビジョン番号を取得する方法がわかりません。

jQuery: 1.6.2

助けてくれてありがとう!

4

1 に答える 1

1

値を返す必要があると思うので、上記のコードが正しければ:

return window.$("div[id='listOfElements']>div[class='items']>ul[class='items'] li[class*='listedElements']").length;

実行する文字列の前にリターン部分を追加するだけです。

于 2012-05-08T14:06:57.670 に答える