Ho utilizzato HTMLUnit. Si adatta bene alle mie esigenze. Ma sembra essere estremamente lento. per esempio: mi hanno automatizzato il seguente scenario utilizzando HtmlUnitHTMLUnit: esecuzione super slow?
Goto Google page
Enter some text
Click on the search button
Get the title of the results page
Click on the first result.
Codice:
long t1=System.currentTimeMillis();
Logger logger=Logger.getLogger("");
logger.setLevel(Level.OFF);
WebClient webClient=createWebClient();
WebRequest webReq=new WebRequest(new URL("http://google.lk"));
HtmlPage googleMainPage=webClient.getPage(webReq);
HtmlTextInput searchTextField=(HtmlTextInput) googleMainPage.getByXPath("//input[@name='q']").get(0);
HtmlButton searchButton=(HtmlButton) googleMainPage.getByXPath("//button[@name='btnK']").get(0);
searchTextField.type("Sri Lanka");
System.out.println("Text typed!");
HtmlPage googleResultsPage= searchButton.click();
System.out.println("Search button clicked!");
System.out.println("Title : " + googleResultsPage.getTitleText());
HtmlAnchor firstResultLink=(HtmlAnchor) googleResultsPage.getByXPath("//a[@class='l']").get(0);
HtmlPage firstResultPage=firstResultLink.click();
System.out.println("First result clicked!");
System.out.println("Title : " + firstResultPage.getTitleText());
//System.out.println(firstResultPage.asText());
long t2=System.currentTimeMillis();
long diff=t2-t1;
System.out.println("Time elapsed : " + milliSecondsToHrsMinutesAndSeconds(diff));
webClient.closeAllWindows();
Funziona bene al 100%. Ma ci vogliono 3 minuti, 41 secondi
Immagino che il motivo per l'esecuzione lenta sia la convalida di ogni singolo elemento della pagina.
La mia domanda è come ridurre i tempi di esecuzione di HTMLUnit? c'è un modo per disabilitare le convalide sulle pagine web.
Grazie in anticipo!
è possibile incollare il codice? – UVM
Si prega di trovare il codice aggiornato. –
Disabilitare il supporto JS renderà più veloce il più possibile –