Selenium HtmlUnit驱动程序不';不执行JavaScript

Selenium HtmlUnit驱动程序不';不执行JavaScript,selenium,selenium-webdriver,htmlunit,Selenium,Selenium Webdriver,Htmlunit,我是HtmlUnit新手,在登录时遇到一些问题。 下面的代码适用于FireFoxDriver,但不适用于HtmlUnitDriver。问题是它在点击“登录”链接时没有执行javascript 用于查看html的网站url: HtmlUnitDriver=newhtmlUnitDriver(BrowserVersion.CHROME_16); driver.setJavascriptEnabled(true); WebDriverWait wait=新的WebDriverWait(驱动程序,10)

我是HtmlUnit新手,在登录时遇到一些问题。 下面的代码适用于
FireFoxDriver
,但不适用于
HtmlUnitDriver
。问题是它在点击“登录”链接时没有执行
javascript

用于查看html的网站url:

HtmlUnitDriver=newhtmlUnitDriver(BrowserVersion.CHROME_16);
driver.setJavascriptEnabled(true);
WebDriverWait wait=新的WebDriverWait(驱动程序,10);
获取(fleetWorkURL);
WebElement usernamelement=driver.findElement(By.name(“j_username”));
usernamelement.sendKeys(用户名);
WebElement passwordElement=driver.findElement(By.name(“j_password”));
passwordElement.sendKeys(密码);
WebElement loginButtonElement=driver.findelelement(By.linkText(“登录”));
loginButtonElement.click();
等待.直到(预期条件.框架可用并切换到IT(“headerFrame”);
堆栈跟踪:

    13, 2013 2:47:54 PM com.gargoylesoftware.htmlunit.IncorrectnessListenerImpl notify
    WARNING: Obsolete content type encountered: 'text/javascript'.
    13, 2013 2:47:54 PM com.gargoylesoftware.htmlunit.IncorrectnessListenerImpl notify
    WARNING: Obsolete content type encountered: 'text/javascript'.
    13, 2013 2:47:55 PM com.gargoylesoftware.htmlunit.IncorrectnessListenerImpl notify
    WARNING: Obsolete content type encountered: 'text/javascript'.
   2013 2:47:56 PM com.gargoylesoftware.htmlunit.WebClient loadDownloadedResponses
   INFO: No usage of download: com.gargoylesoftware.htmlunit.WebClient$LoadJob@1b55ca5

   Exception in thread "main" org.openqa.selenium.TimeoutException: Timed out after 10  seconds waiting for frame to be available: headerFrame
   Build info: version: '2.29.1', revision: 'dfb1306b85be4934d23c123122e06e602a15e446',  time: '2013-01-22 12:58:05'
   System info: os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version:  '1.7.0_11'
    Driver info: driver.version: unknown
at org.openqa.selenium.support.ui.FluentWait.timeoutException(FluentWait.java:255)
at org.openqa.selenium.support.ui.FluentWait.until(FluentWait.java:224)
at com.yukon.qasetup.xmlService.XMLService.main(XMLService.java:77)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)

您的类HtmlUnitDriver不是标准Selenium包的一部分,是吗?据我所知,对于HtmlUnit,您必须使用DesiredCapabilities.HtmlUnit()或DesiredCapabilities.HtmlUnitWithJavaScript()创建一个RemoteWebDriver实例


你能在你的HtmlUnitDriver类中学习吗?可能使用DesiredCapabilities.HtmlUnit()而不是DesiredCapabilities.HtmlUnitWithJavaScript()

日志中的此消息,可以指向。。。警告:遇到过时的内容类型:“text/javascript”。不确定。我认为这些警告可以忽略;HtmlUnit似乎可以应付,即使它不喜欢内容类型。真正的问题是找不到frame headerFrame的异常情况。@user1991529:这是否是javascript的一个特定问题,该问题应该由登录按钮触发?或者网站上的任何javascript都会失败吗?也许你需要放慢速度。记住:它比firefox快得多。这意味着您可能在加载javascript之前单击登录按钮。(Selenium 2不会等待页面加载)。也许您需要一个while构造,只要headerFrame不可见,就单击登录按钮。我只有在登录后才能看到“headerFrame”,如果是?请共享测试用户名/密码。也许我能帮上忙。。。