2012-03-08 70 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