Как создать объект HTMLPage HtmlUnit из строки? - PullRequest
18 голосов
/ 26 мая 2011

Этот вопрос был задан однажды уже , но API изменился, я думаю, и ответы больше не действительны.

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 защищен и все такоекак расширение / реализация окна из-за этого смешно :)

У кого-нибудь есть идеи, как это сделать?Мне кажется странным, что это нельзя сделать легко.

1 Ответ

25 голосов
/ 26 мая 2011

Этот код работает в 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());
...