2016-04-11 19 views
0

Dış IP adresimi kontrol etmek ve değiştirildiyse DNS girişlerimi güncellemek için basit bir Java kodu parçası yazıyorum.HTMLunit tarayıcı otomasyonu SSL hatasına neden oluyor

NetBeans ve HTMLunit kullanıyorum. Kodun ilk kısmı tamam çalışıyor. Kodum, uygun bir dış IP adresini alır: WhatIsMyIp.com

DNS sağlayıcı web sayfama (fastname.no) giriş yapmayı içeren ikinci kısım aşağıda eklenmiştir.

> 
> public void LoginToDNS(HtmlPage LogInPage) throws Exception { 
>  try (final WebClient webClient = new WebClient()) { 
> 
>      //get the webpage data we're looking for 
>      // also get the buttons and textfields 
>      final List<?> forms = LogInPage.getForms(); 
>      final HtmlForm form = LogInPage.getFormByName("form1");   
>      final HtmlTextInput UsernameField = form.getInputByName("username");   
>      final HtmlPasswordInput PasswordField = form.getInputByName("password"); 
>      final HtmlButton submit_button = form.getButtonByName("submit"); 
> 
>      // Set the Username and pasword 
>      UsernameField.setValueAttribute("myusername"); 
>      PasswordField.setValueAttribute("mypassword"); 
> 
>      // submit the form by clicking the button and get back the control panel page 
>      final HtmlPage DNSPage = submit_button.click(); 
>      CheckDNSEntries(DNSPage); 
>      
>   } 
>  } 


Ben bir SSL hata görebilirsiniz ve elde edilen web sayfası ne istiyorum değil ben (doğru olana sayfa başlığı değişiklikler nedeniyle, biliyorum) düzgün Giriş yaptıktan görebilirsiniz rağmen

. Ben Submit_button bastığınızda

java.util.concurrent.ExecutionException: java.io.IOException: Cannot init SSL 
.... 
Caused by: java.io.IOException: Cannot init SSL 
...... 
at org.eclipse.jetty.websocket.client.io.WebSocketClientSelectorManager.newConnection(WebSocketClientSelectorManager.java:96) 

    ... 3 more 

Doğru, HtmlUnit'in gelen debugger hataların bir sürü bir cehennem görüyoruz.

Apr 12, 2016 10:36:49 AM com.gargoylesoftware.htmlunit.javascript.StrictErrorReporter runtimeError 
SEVERE: runtimeError: message=[An invalid or illegal selector was specified (selector: '*,:x' error: Invalid selector: :x).] sourceName=[https://www.fastname.no/panel/js/custom/bootstrap.js?bust=?v20160408110428] line=[66] lineSource=[null] lineOffset=[0] 
Apr 12, 2016 10:36:49 AM com.gargoylesoftware.htmlunit.javascript.StrictErrorReporter runtimeError 
SEVERE: runtimeError: message=[An invalid or illegal selector was specified (selector: '*,:x' error: Invalid selector: :x).] sourceName=[https://www.fastname.no/panel/js/custom/bootstrap.js?bust=?v20160408110428] line=[66] lineSource=[null] lineOffset=[0] 
Apr 12, 2016 10:36:51 AM com.gargoylesoftware.htmlunit.javascript.background.JavaScriptJobManagerImpl runSingleJob 
SEVERE: Job run failed with unexpected RuntimeException: [object Object] (https://www.googletagmanager.com/gtm.js?id=GTM-TWH4RS&bust=?v20160408110428#65) 
======= EXCEPTION START ======== 
Exception class=[net.sourceforge.htmlunit.corejs.javascript.JavaScriptException] 
com.gargoylesoftware.htmlunit.ScriptException: [object Object] (https://www.googletagmanager.com/gtm.js?id=GTM-TWH4RS&bust=?v20160408110428#65) 


Apr 12, 2016 10:36:52 AM com.gargoylesoftware.htmlunit.javascript.background.JavaScriptJobManagerImpl runSingleJob 
SEVERE: Job run failed with unexpected RuntimeException: [object Object] (https://www.googletagmanager.com/gtm.js?id=GTM-TWH4RS&bust=?v20160408110428#65) 
======= EXCEPTION START ======== 
Exception class=[net.sourceforge.htmlunit.corejs.javascript.JavaScriptException] 
com.gargoylesoftware.htmlunit.ScriptException: [object Object] (https://www.googletagmanager.com/gtm.js?id=GTM-TWH4RS&bust=?v20160408110428#65) 
    at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.handleJavaScriptException(JavaScriptEngine.java:982) 
    at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:894) 

2016-04-12 10:36:55.106:INFO::JS executor for [email protected]: Logging initialized @10613ms 
Apr 12, 2016 10:36:55 AM com.gargoylesoftware.htmlunit.javascript.host.WebSocket run 
SEVERE: WS connect error 
java.util.concurrent.ExecutionException: java.io.IOException: Cannot init SSL 
    at org.eclipse.jetty.util.FuturePromise.get(FuturePromise.java:123) 
    at com.gargoylesoftware.htmlunit.javascript.host.WebSocket$1.run(WebSocket.java:130) 

Bu JavaScript işleme bir HtmlUnit'in sorundur yoksa sadece benim kod olsun oldukça emin değilim (aşağıya bakınız). Daha hızlı gitmek istediğim yeri alacağım HTML birimi yerine kullanabileceğim daha iyi bir çözüm var mı? Sonuçta, gerçekleştirmek istediğim görevin nispeten basit olduğunu düşünüyorum.

cevap

0

ekleyerek SSL etkinleştirmek için deneyin:

webClient.getOptions().setUseInsecureSSL(true); 

Daha belgelerine here bulabilirsiniz.

DÜZENLEME: HtmlUnit'in günlükleri gizlemek için , bunu eklemek zorunda: .... Hayır, hâlâ hatayı alıyorum

+0

:(Zaten kodu ekledikten –

+0

ama Ι hala SSL hatası olsun.Ana sayfanın sonuç HTML kodunun kopyalanması ve yapıştırılması ve sadece alt çerçevenin döndüğü görünüyor.Javascript bir tür orta çerçeve –

+0

göstermiyor En azından tüm HtmlUnit gizlemek başardı mı belirli günlükler – haihui

İlgili konular