我是HtmlUnit的新手,登录时遇到了一些麻烦。
下面的代码对于FireFoxDriver可以很好地工作,但是对于HtmlUnitDriver则不能。问题是单击“登录”链接时未执行javascript

用于html查看的站点URL:https://fleetworks.trimbletl.com/fleet/start.do

HtmlUnitDriver driver = new HtmlUnitDriver(BrowserVersion.CHROME_16); 
driver.setJavascriptEnabled(true); 
WebDriverWait wait = new WebDriverWait(driver, 10); 
 
driver.get(fleetWorkURL); 
 
WebElement usernameElement = driver.findElement(By.name("j_username")); 
usernameElement.sendKeys(username); 
 
WebElement passwordElement = driver.findElement(By.name("j_password")); 
passwordElement.sendKeys(password); 
 
WebElement loginButtonElement = driver.findElement(By.linkText("Log in")); 
loginButtonElement.click(); 
 
wait.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt("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()!


评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!