2011-12-21 104 views
2

我一直在試圖訪問一個HTTPS URL和Selenium 2.0的HTMLUnitDriver API,但是某種程度上,執行卡住了「This Connection is Untrusted」窗口,並且控件不能不會回來。以下是我試圖努力我得到了一些暗示從this thread後的代碼:獲取HTMLUnitDriver繞過不受信任的證書驗證(Selenium 2.0)

WebDriver driver = new HtmlUnitDriver() { 
    protected WebClient modifyWebClient(final WebClient client) { 
     try { 
      client.setUseInsecureSSL(true); 
     } catch (GeneralSecurityException e) { 
      e.printStackTrace(); 
     } 
     return client; 
    } 
}; 
driver.get("https://172.25.194.91:8443/meta/homeScreen.do"); 

我高度讚賞任何幫助,得到它的工作。

+0

SOS SOS ... desp。需要一些幫助。 – 2011-12-21 11:32:14

回答

1

的問題是別的東西,現在已經解決:HtmlUnitDriver使用WaitingRefreshHandler沒有參數,可惜就是不適合某些部位 - 例如,HtmlUnitDriver掛在http://news.google.com

原因&場景:

  1. 您加載一個頁面,該頁面刷新自身的一段時間後,因爲<meta http-equiv="refresh"...>指令在你的HTML頭的存在。
  2. WaitingRefreshHandler等待指定的時間但過了一段時間後,它再次重定向HtmlUnitDriver以獲取該頁面!
  3. 因此,您在此重定向過程中永遠循環。

解決方案:

人們需要延長HtmlUnitDriver並重寫modifyWebClient方法來設置一個新的(讀:疏通)刷新處理程序。

@Override 
protected WebClient modifyWebClient(WebClient client) { 
    RefreshHandler rh = new RefreshHandler() { 
     public void handleRefresh(final Page page, final URL url, final int seconds) { } 
    }; 
    client.setRefreshHandler(rh); 
    return client; 
} 
+0

我使用HtmlUnitDriver 2.28.2,此解決方案無效:'org.openqa.selenium.WebDriverException:javax.net.ssl.SSLException:java.lang.SecurityException:JCE無法驗證提供程序SunJCE' – cbaldan 2017-12-15 20:08:03

相關問題