【问题标题】:How to click hypertext link in aspx site with HtmlUnit如何使用 HtmlUnit 在 aspx 站点中单击超文本链接
【发布时间】: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() 方法检测到的所有代码。它仅显示代码的初始部分,然后以

标签: java asp.net eclipse html-table htmlunit


【解决方案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 代码,直到绿色文本。不显示绿色文字之后的内容。
猜你喜欢
  • 1970-01-01
  • 2015-11-28
  • 1970-01-01
  • 2023-01-10
  • 1970-01-01
  • 2018-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多