2012-03-08 94 views
0

当我使用C#运行这段代码里面MSTEST TestMethod的...硒返回JavaScript错误(UnexpectedJavaScriptError)

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已加载并可用。我甚至在没有使用硒的网页中测试,只是使用内联脚本来查看$ .active是否会起作用。

任何人都可以告诉我在这里做错了吗?任何猜测都会受到欢迎。

+0

不应该是selenium.browserbot.getCurrentWindow()。$。active – 2012-03-09 06:32:52

+0

我已经尝试了selenium.browserbot.getCurrentWindow()。$。active和selenium.browserbot.getUserWindow()。$。active with both返回相同的错误。 – apolfj 2012-03-09 16:13:42

回答

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"); 
+0

.Open()只需要指向正在使用的网页的路径?或者它需要指向我正在使用的jQuery库来执行$ .active? – apolfj 2012-03-21 16:08:54

+0

上面的示例代码假定正在使用的网页已经在其HTML源代码中加载了jQuery。 '.Open()'调用应该只是打开你正在使用的页面。 – JimEvans 2012-04-03 17:55:47