Selenium返回JavaScript错误(UnexpectedJavaScriptError)

时间:2012-03-08 22:41:50

标签: c# selenium

当我使用c#...

在mstest testmethod中运行此代码时
IWebDriver iWebDriver = new InternetExplorerDriver();

WebDriverBackedSelenium webDriverBackedSelenium = new WebDriverBackedSelenium(iWebDriver, "http://localhost:53157");

webDriverBackedSelenium.Start();

webDriverBackedSelenium.WaitForCondition("selenium.browserbot.getUserWindow().$.active == 0", "5000");

我收到一个Javascript错误(UnexpectedJavaScriptError)但是我已经看到示例后面的例子,这是要走的路。

作为额外的信息,我测试了jquery-1.7.1已加载并可用。我甚至在没有selenium的网页中测试过只使用内联脚本来查看$ .active是否可以正常工作。

谁能告诉我这里做错了什么?任何猜测都会受到欢迎。

2 个答案:

答案 0 :(得分:1)

当您使用WebDriverBackedSelenium时,您可以使用可执行的脚本类型获得更多自由度。此外,您不需要使用“selenium.browserbot”,实际上,WebDriverBackedSelenium甚至可能无法加载browserbot对象。如果你尝试以下,它应该工作:

IWebDriver iWebDriver = new InternetExplorerDriver();
WebDriverBackedSelenium webDriverBackedSelenium = new WebDriverBackedSelenium(iWebDriver, "http://localhost:53157");
webDriverBackedSelenium.Start();
webDriverBackedSelenium.Open("relative/path/to/jQueryPage.html");
webDriverBackedSelenium.WaitForCondition("$.active == 0", "5000");

答案 1 :(得分:0)

您可以尝试使用IJavaScriptExecutor并使用while循环并尝试等待条件匹配。

您可能希望在此处查看文档

http://selenium.googlecode.com/svn-history/r15240/trunk/docs/api/dotnet/html/AllMembers_T_OpenQA_Selenium_IJavaScriptExecutor.htm

还要记住,IJavaScriptExecutor的值返回是一个对象。在进行比较之前,您可能必须将其强制转换为字符串。