2011-05-26 15 views
17

यह question was asked once already, लेकिन एपीआई बदल गया मुझे लगता है और उत्तर अब और मान्य नहीं हैं।स्ट्रिंग से HtmlUnit HTMLPage ऑब्जेक्ट कैसे बनाएं?

URL url = new URL("http://www.example.com"); 
StringWebResponse response = new StringWebResponse("<html><head><title>Test</title></head><body></body></html>", url); 
HtmlPage page = HTMLParser.parseHtml(response, new TopLevelWindow("top", new WebClient())); 
System.out.println(page.getTitleText()); 

क्योंकि TopLevelWindow सुरक्षित है नहीं किया जा सकता है और विस्तार/उसकी वजह से खिड़की को लागू करने की तरह सामान हास्यास्पद है :)

किसी एक विचार कैसे ऐसा करने के लिए है? ऐसा लगता है कि यह अजीब लगता है कि इसे आसानी से नहीं किया जा सकता है।

उत्तर

23

इस कोड GroovyConsole

@Grapes(
    @Grab(group='net.sourceforge.htmlunit', module='htmlunit', version='2.8') 
) 

import com.gargoylesoftware.htmlunit.* 
import com.gargoylesoftware.htmlunit.html.* 

URL url = new URL("http://www.example.com"); 
StringWebResponse response = new StringWebResponse("<html><head><title>Test</title></head><body></body></html>", url); 
WebClient client = new WebClient() 
HtmlPage page = HTMLParser.parseHtml(response, client.getCurrentWindow()); 
System.out.println(page.getTitleText()); 
+1

मैं नहीं जानता कि क्या आप देख रहे हैं में काम करता है, लेकिन निर्माता सुरक्षित है। कक्षाएं जावा में "सार्वजनिक" होनी चाहिए, जब तक कि यह आंतरिक या घोंसला वाली कक्षा न हो ... – lisak

+0

मेरा बुरा, मैं कक्षा की घोषणा और ग्रोवी/जावा की सूक्ष्मता को देख रहा था, मेरे कोड को ग्रोवी कंसोल में बनाया गया। मैंने एक साधारण मोड़ के साथ तदनुसार संपादित किया है। यह अब आपके लिए काम करना चाहिए – Grooveek

+0

धन्यवाद ग्रूवेक, यह ग्रोवी कंसोल में कैसे काम कर रहा था? – lisak

संबंधित मुद्दे