com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException:404 未找到 https://tax.ocgov.com/includes/jquery-2.2.3.min.js

问题描述

我试图通过 HtmlUnit 在 https://tax.ocgov.com/tcweb/search_page.asp 上寻找有效的包裹号,所以我使用了以下 for 循环:

for (Integer pID=34056101; pID<34056111; pID++) {
    HtmlPage page = webClient.getPage("https://tax.ocgov.com/tcweb/search_page.asp");
    String i = pID.toString();
    final HtmlForm form = page.getFormByName("searchparcel");
    final HtmlTextInput taxIDInput = form.getInputByName("t_parcel_no");
    final HtmlImageInput button = form.getInputByName("s_parcel");
    taxIDInput.type(i);

    final HtmlPage page2 = (HtmlPage) button.click();

    //System.out.println(page2.getUrl().getPath());
    if (page2.getUrl().getPath() == "/tcweb/search_parcel.asp")
        {writer.println(pID);}
    }

但是,我收到此错误

com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException: 404 不是 为 https://tax.ocgov.com/includes/jquery-2.2.3.min.js

找到

异常是由这行代码引起的:

final HtmlPage page2 = (HtmlPage) button.click();

我应该怎么做才能使我的程序正常运行?

解决方法

您正在处理的页面有很多问题 - 只需打开浏览器控制台,然后自己查看....

enter image description here

开箱即用的 HtmlUnit 是为页面测试而编写的,因为与真实浏览器相比,此类错误的处理更加敏感。 但你可以改变这一点。

对我来说这段代码有效:

final String url = "https://tax.ocgov.com/tcweb/search_page.asp";

try (final WebClient webClient = new WebClient()) {
    webClient.getOptions().setThrowExceptionOnScriptError(false);
    webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);

    HtmlPage page = webClient.getPage(url);
    webClient.waitForBackgroundJavaScript(1000);

    final HtmlForm form = page.getFormByName("searchparcel");
    final HtmlTextInput taxIDInput = form.getInputByName("t_parcel_no");
    final HtmlImageInput button = form.getInputByName("s_parcel");
    taxIDInput.type("34056101");

    final HtmlPage page2 = (HtmlPage) button.click();
    webClient.waitForBackgroundJavaScript(1000);

    System.out.println("***********");
    System.out.println(page2.asNormalizedText());
    System.out.println("***********");

}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...