C# 正确的jQuery代码在webdriver中不起作用

C# 正确的jQuery代码在webdriver中不起作用,c#,jquery,selenium,webdriver,C#,Jquery,Selenium,Webdriver,我正在将Selenium测试迁移到WebDriver,有一个测试使用jQuery来确定某个位置有多少元素。此代码在Selenium1上运行良好,但在WebDriver上不起作用。当我说“它不工作”时,我的意思是它返回一个非常大且难看的null,而不是所需的3作为字符串。然而,如果我用Selenium1运行它,我会得到所需的3作为字符串 我在谷歌上搜索了一下,但没有找到任何有助于解决这个问题的方法 这些示例不是真正的代码,它们只是示例。如果我在firebug中运行原始代码,它总是可以正常工作 ht

我正在将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>
c#代码:

这个方法总是返回null,但是我需要“listeElements”的数量

版本:c#3.5

Webdriver:根据我的文件系统,我大约在今年三月初下载了它,我不知道如何获得它的修订号

jQuery:1.6.2


提前感谢您的帮助

我认为您需要返回值,因此如果上述代码正确:

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

您只需将返回部分添加到要执行的字符串的前面。

很抱歉,我不明白。上面是示例c#代码,其中脚本变量包含脚本。有一个返回值。或者我误解了什么?脚本变量需要返回值。因此,返回值位于javascript变量前面。ahhhhhhh…:)我得到了它!非常感谢!:)
public string GetEval(string script)
{
        var js = _driver as IJavaScriptExecutor;
        return (string) js.ExecuteScript(script);
}
return window.$("div[id='listOfElements']>div[class='items']>ul[class='items'] li[class*='listedElements']").length;