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
助けてくれてありがとう!