如何使用 HtmlUnit 在 aspx 站点中单击超文本链接
Posted
技术标签:
【中文标题】如何使用 HtmlUnit 在 aspx 站点中单击超文本链接【英文标题】:How to click hypertext link in aspx site with HtmlUnit 【发布时间】:2015-12-19 18:38:30 【问题描述】:我正在开发一个 apsx 网站。我找不到用 htmlUnit 点击表格内链接的方法。 我已经尝试了很多方法,但我得到了“ItemNotFound”异常或“NullPointerException”。
这是我的代码:
public static void selezionaConto(HtmlPage page, int nConto) throws Exception
try (final WebClient webClient = new WebClient(BrowserVersion.CHROME))
webClient.getOptions().setThrowExceptionOnScriptError(false);
final HtmlPage currentPage = page;
nConto = 5;
switch (nConto)
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
HtmlAnchor nextLink = currentPage.getFirstByXPath("//a[@id='lnkQuintoConto']");
HtmlPage newPage = nextLink.click();
System.out.println(newPage.asXml());
break;
【问题讨论】:
请提供您的完整案例(附网址),以便其他人可以重现该问题。 我发现很难添加 HTML 代码的图像,因为我没有足够的声誉。无法为您提供 URL,因为它涉及提供明智的信息,但我正在努力弄清楚我的问题到底是什么:当我在代码中查找特定的 href 时,程序找不到它,那是因为它似乎根本不是 HTML 代码的一部分。我注意到通过在屏幕上打印 asXml() 方法检测到的所有代码。它仅显示代码的初始部分,然后以 【参考方案1】:你应该这样做:
currentPage.getFirstByXPath("//a[@class='SelezDecretoButton']");
或
currentPage.getFirstByXPath("//a[@id='lnkQuintoConto']");
或
currentPage.getAnchorByHref(complere_href)
XPath 的意思是:从根//
,递归选择子级,a
和@id
或@class
属性whatever
。
【讨论】:
我在主帖中编辑了代码。现在我得到了这个异常:线程“main”中的异常 java.lang.NullPointerException 你能发布currentPage.asXml()
的值吗?这就是 HtmlUnit 所看到的
对不起,因为它很长,所以不得不在不同的答案中发布它! :)
因为我没有在主帖中发布整个 HTML,所以 asXml() 给我的是所有源代码的 HTML 代码,直到绿色文本。不显示绿色文字之后的内容。以上是关于如何使用 HtmlUnit 在 aspx 站点中单击超文本链接的主要内容,如果未能解决你的问题,请参考以下文章