我正在将我们的 Selenium 测试迁移到 WebDriver,并且有一个测试使用 jQuery 来确定某个位置有多少元素。此代码在 Selenium1 上运行良好,但不适用于 WebDriver。当我说“它不工作”时,我的意思是它返回一个非常大且丑陋的null而不是所需的 3 作为字符串。但是,如果我使用 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:根据我的文件系统,我是在今年三月初左右下载的,不知道如何获得它的修订号。
jQuery:1.6.2
提前感谢您的帮助!