我正在使用 HtmlUnit 浏览网页以获取跨度内的文本(代码)。每次我登录后访问该页面时都会生成此代码。这是 HTML 外观的示例:
<div id="Main" class="" role="main">
<p>Your code for this session:</p>
<p style="align: center; text-align: center;">
<span>XXX-XXX-XXX</span>
</p>
</div><!--end Main-->
我想获取代码(这个东西--> XXX-XXX-XXX)。
我尝试了以下方法:
final HtmlPage page = webClient.getPage("http://the_url");
final HtmlDivision div = page.getHtmlElementById("Main");
但是,当我打印 div 的内容时,它会打印来自 <a>
的文本标签。
我没有使用 getByXPath("//div[@class='someclass']//p");
因为 div 类是空的。有什么建议吗?
最佳答案
我手边没有 HTMLUnit,但是 XPath 查询 "//*[@id='Main']/p/span"
应该可以得到 span
元素(如果您正在处理的 HTML 与示例中的一样)。然后您应该能够从该元素中获取文本以找到您的 XXX-XXX-XXX 代码。
很久没用HTMLUnit了,但是来自the docs ,看起来您想要的完整代码类似于:
String code = page.getFirstByXPath("//*[@id='Main']/p/span").getTextContent();
关于java - 使用 HtmlUnit 从 <p> 中检索值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32956876/