मैं HTMLUnit का उपयोग कर रहा हूं। यह मेरी आवश्यकताओं को अच्छी तरह से उपयुक्त बनाता है। लेकिन यह बहुत धीमी प्रतीत होता है। उदाहरण के लिए: मैं इस परिदृश्य पर HTMLUnitHTMLUnit: सुपर धीमी निष्पादन?
का उपयोग कर स्वचालित हैGoto Google page
Enter some text
Click on the search button
Get the title of the results page
Click on the first result.
कोड:
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();
यह अच्छी तरह से 100% काम करता है। लेकिन इसमें 3 मिनट लगते हैं, 41 सेकंड
मुझे लगता है कि धीमी निष्पादन का कारण पृष्ठ पर प्रत्येक तत्व को मान्य कर रहा है।
मेरा प्रश्न है HTMLUnit के निष्पादन समय को कैसे कम करें? वेबपृष्ठों पर सत्यापन अक्षम करने का कोई तरीका है।
अग्रिम धन्यवाद!
क्या आप कोड पेस्ट कर सकते हैं? – UVM
कृपया अद्यतन कोड खोजें। –
जेएस समर्थन को अक्षम करने से यह तेजी से कम हो जाएगा –