簡體   English   中英

嘗試使用 Java 和 HTML 單元登錄站點

[英]Trying to login to a site using Java and HTML Unit

下面我附上了完整的代碼,這是它崩潰的部分HtmlSubmitInput button = (HtmlSubmitInput) form.getInputByName("login");

我似乎遇到的問題是讓程序點擊按鈕。 我右鍵單擊按鈕並使用 chrome 中的檢查元素來查找按鈕的名稱,然后使用 getInputByName 但我似乎遺漏了一些東西。

**

    import com.gargoylesoftware.htmlunit.WebClient;
    import com.gargoylesoftware.htmlunit.html.HtmlForm;
    import com.gargoylesoftware.htmlunit.html.HtmlPage;
    import com.gargoylesoftware.htmlunit.html.HtmlSubmitInput;
    import com.gargoylesoftware.htmlunit.html.HtmlTextInput;

    public class GoogleRobotSearch {
     private String bUrl;

     public GoogleRobotSearch (String url) throws Exception {
      bUrl = url;
     }

     public void search () throws Exception {
      WebClient wb = new WebClient ();
      HtmlPage p = (HtmlPage) wb.getPage(bUrl);

      HtmlForm form = p.getFormByName("frmLogin");
      HtmlTextInput text = (HtmlTextInput) form.getInputByName("username");    

      HtmlSubmitInput button = (HtmlSubmitInput) form.getInputByName("login");

      text.setValueAttribute("Ziplok Java");

      HtmlPage resultPage = (HtmlPage) button.click();
      System.out.println(resultPage.asText());



     }

     public static void main (String args[]) throws Exception {
      GoogleRobotSearch xyro = new GoogleRobotSearch ("http://www.pof.com/");
      xyro.search ();
     }
    }

**

請注意,登錄按鈕不是輸入。

它適用於以下代碼:

DomElement button = (DomElement) form.getFirstByXPath("//button[@id='logincontrol_submitbutton']");

text.setValueAttribute("Ziplok Java");

HtmlPage resultPage = (HtmlPage) button.click();
System.out.println(resultPage.asText());

我沒有使用輸入,而是使用通用 DomElement 並通過其 ID 獲取項目。 您也可以使用按鈕特定對象,但 DomElement 工作正常:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM