我想使用HTML Unit for JAVA。在所有的例子中,将从一个特定的网站读取HTML代码。
但是我想从另一个String读取HTML源代码。
就像这样:
String myString = "<html> myString and Content </html>";
HtmlPage page = myString; // doesn´t work, how can I do something like this?
我只看到这样的例子:
final WebClient webClient = new WebClient();
final HtmlPage page = webClient.getPage("http://htmlunit.sourceforge.net");
我也可以只读一张表吗?就像这样:
String myTable = "<table><td></td></table>";
HtmlTable table = myTable; // doesn´t work, how can I do something like this?
我现在的问题是,我如何才能正确地转换它?有人能帮帮我吗。
3条答案
按热度按时间wqsoz72f1#
HtmlUnit并不是真正为这个用例设计的,所以让它工作总是有点麻烦。如果您没有特别绑定到HtmlUnit,那么最好使用jsoup之类的东西,它具有更好的内置支持,可以从字符串解析HTML。
也就是说,如果您绑定到HtmlUnit,则有可能使其工作。为了获得灵感,您可以看看HtmlUnit如何在它自己的测试套件中设置HtmlPage对象。
正如您在这里看到的,尽管无法直接从String构造HtmlPage,但可以创建一个MockWebConnection,它将在不涉及网络的情况下给予固定的响应。因此,您的代码可能看起来像这样:
(对上面的错误表示歉意--我不再是Java项目的成员,所以现在没有方便的方法来测试它。也就是说,我确实花了一些时间在一个大型Java项目上,该项目在许多测试中使用了这种技术。它运行得相当好,但当我们升级HtmlUnit时,它往往有点脆弱。总的来说,当我们搬到Jsoup时,我们更开心了。)
tct7dpnv2#
这里有另一种方法,类似于科勒姆的方法,但略有不同。
至于拿table,是有可能的。您可以使用上面的方法加载它,并使用下面的代码提取它。
你可以用下面的代码遍历和单元格
您可以通过下面的示例访问特定的单元格
请评论,如果你卡住了,我也许可以帮助
0dxa2lsx3#
在HtmlUnit 2中。51.0至至少2。70.0这对我来说很有用: