2013-02-13 44 views
6

Tôi mới dùng HtmlUnit và đang gặp một số sự cố khi đăng nhập. Mã dưới hoạt động hoàn toàn tốt cho FireFoxDriver nhưng không thành công cho HtmlUnitDriver. Vấn đề là nó không thực hiện javascript trong khi nhấp vào liên kết "Đăng nhập";Trình điều khiển HtmlUnit không thực thi JavaScript

trang web url để xem html: 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")); 

StackTrace:

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: [email protected] 

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

thư này trong nhật ký, có thể trỏ đến nội dung nào đó ... CẢNH BÁO: Loại nội dung lỗi thời gặp phải: 'text/javascript'. không chắc. –

+0

Tôi nghĩ rằng các cảnh báo có thể bị bỏ qua; HtmlUnit dường như đối phó, ngay cả khi nó không thích kiểu nội dung. Vấn đề thực sự là ngoại lệ mà nó không thể tìm thấy frame _headerFrame_. –

+1

@ user1991529: Có phải vấn đề cụ thể với javascript được cho là được kích hoạt bởi nút đăng nhập không? Hoặc nó không cho bất kỳ javascript trên trang web? –

Trả lời

-1

HtmlUnitDriver lớp học của bạn không phải là một phần của gói Selenium tiêu chuẩn, phải không? Theo tôi biết, đối với HtmlUnit bạn phải tạo một cá thể RemoteWebDriver với cả DesiredCapabilities.HtmlUnit() hoặc DesiredCapabilities.HtmlUnitWithJavaScript().

Bạn có thể loook bên trong lớp HtmlUnitDriver của mình không? Có lẽ DesiredCapabilities.HtmlUnit() thay vì DesiredCapabilities.HtmlUnitWithJavaScript() được sử dụng !?

Các vấn đề liên quan