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