当我使用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是否可以正常工作。
谁能告诉我这里做错了什么?任何猜测都会受到欢迎。
答案 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循环并尝试等待条件匹配。
您可能希望在此处查看文档
还要记住,IJavaScriptExecutor
的值返回是一个对象。在进行比较之前,您可能必须将其强制转换为字符串。