Java: щелчок по блоку HTML () - PullRequest
       17

Java: щелчок по блоку HTML ()

0 голосов
/ 17 февраля 2019

Я анализирую веб-сайт с модулем Java и HTML.Вот кнопка, которую я хочу нажать

<a id="ContentPlaceHolder1_btnSend" href='javascript:WebForm_DoPostBackWithOptions
    (new WebForm_PostBackOptions("ctl00$ContentPlaceHolder1$btnSend", "", true, "", "", false, true))'>
    <img src="../img/button12.gif" alt="">
</a>

, и вот часть моего кода

public void parse_del(String delno){
    try
    {
        WebClient client = new WebClient(BrowserVersion.CHROME);

        client.getOptions().setCssEnabled(false);
        client.getOptions().setJavaScriptEnabled(false);
        //get first page
        HtmlPage currentPage = (HtmlPage)client.getPage("https://www.t-cat.com.tw/Inquire/Trace.aspx");
        //find inout area
        HtmlTextInput inputbox = (HtmlTextInput) currentPage.getElementById("ContentPlaceHolder1_txtQuery1");
        //set value
        inputbox.setValueAttribute(delno);
        //find the send button
        HtmlElement send = (HtmlElement) currentPage.getElementById("ContentPlaceHolder1_btnSend");
        //click
        HtmlPage newpage = send.click();
    }
    catch (Exception ex){
        System.out.println("ERROR !");
    }
}

Однако она остается на той же странице после нажатия кнопки.Я думаю, что причина может быть в этой строке

client.getOptions().setJavaScriptEnabled(false);

Функция click () не может быть успешно выполнена, потому что я включил Javascript.

Но если я удалю эту строку, появятся тонны предупреждающих сообщений, таких как

17, 2019 10:13:34 com.gargoylesoftware.htmlunit.IncorrectnessListenerImpl notify
Warning: Obsolete content type encountered: 'application/x-javascript'.
17, 2019 10:13:34 com.gargoylesoftware.htmlunit.javascript.host.css.CSSStyleSheet isValidCondition
Warning: Unhandled CSS condition type 'PREFIX_ATTRIBUTE_CONDITION'. Accepting it silently.
17, 2019 10:13:34 com.gargoylesoftware.htmlunit.javascript.StrictErrorReporter runtimeError
Warning: runtimeError: message=[An invalid or illegal selector was specified (selector: '*,:x' error: Invalid selector: *:x).] sourceName=[https://www.t-cat.com.tw/js/jquery.js] line=[2] lineSource=[null] lineOffset=[0]
17, 2019 10:13:34  com.gargoylesoftware.htmlunit.IncorrectnessListenerImpl notify
Warning: Obsolete content type encountered: 'application/x-javascript'.
17, 2019 10:13:34 com.gargoylesoftware.htmlunit.IncorrectnessListenerImpl notify
Warning: Obsolete content type encountered: 'application/x-javascript'.
17, 2019 10:13:34  com.gargoylesoftware.htmlunit.IncorrectnessListenerImpl notify
Warning: Obsolete content type encountered: 'application/x-javascript'.

, и вся программа будет загружена в начале.

Что мне делатьрешить проблему?

1 Ответ

0 голосов
/ 17 февраля 2019

Я решаю это с помощью Jsoup.

Document doc = Jsoup.connect(url)
                .data("__EVENTTARGET","ctl00$ContentPlaceHolder1$btnSend")
                .data("__EVENTARGUMENT:","")
                .data("q", "")
                .data("ctl00$ContentPlaceHolder1$txtQuery1", delno)
                .post();

Я думаю, что это немного похоже на просьбу в области скрапа.

Надеюсь, это может быть полезно для кого-то, кто запутался.

...