2016-10-12 1 views
2

私はJavaアプリケーションを作成しようとしています、私の主なスコープはウェブサイトへのログインといくつかのデータを解析しています。私はhtmlunitとjsoupを使うことに決めました。私は最初に立ち往生しています。Htmlunitログインgithub - フォームIDを識別できません

<form accept-charset="UTF-8" action="/session" data-form-nonce="39175dde4169cc3f2ad998cac114a63525a17f3f" method="post">

フォームはそう、IDを持っていません:htmlunitコードに入れて、ログインを続行するhttps://github.com/loginページのフォームIDを見つけようとしますが、ページのソースコードは、次のされている間htmlunitはそれをどのように識別できますか?

おそらくコード例を投稿してください。

ありがとうございました。

答えて

1

githubログインページには1つのフォームしかありません。そのため、識別は実際問題ではありません。あなたがgetElementByIDを使用せずに要素を選択する方法を知りたい場合は、代わりにquerySelector("...")を使用することができます。

サンプルコード

WebClient webClient = new WebClient(BrowserVersion.CHROME); 

String url = "https://github.com/login"; 

webClient.getOptions().setJavaScriptEnabled(true); 
webClient.getOptions().setThrowExceptionOnScriptError(false); 
webClient.getOptions().setThrowExceptionOnFailingStatusCode(false); 

HtmlPage page = webClient.getPage(url); 
DomElement form = (DomElement) page.querySelector("form"); 

System.out.println(form.asXml()); 

webClient.close(); 

を出力

<form accept-charset="UTF-8" action="/session" data-form-nonce="0cd9f59e177729dbfe5a1b275514fdcc21be8c84" method="post"> 
    <div style="margin:0;padding:0;display:inline"> 
    <input name="utf8" type="hidden" value="✓"/> 
    <input name="authenticity_token" type="hidden" value="3rrjjZbyJ6n310XnDR9mXCi5pJ6OsA+HvLJ0oem8k/XHj37Sd26GXxG7IQk5tcbDnPQnE7WvIjNgU77428iajw=="/> 
    </div> 
    <div class="auth-form-header p-0"> 
    <h1> 
     Sign in to GitHub 
    </h1> 
    </div> 
    <div id="js-flash-container"> 
    </div> 
    <div class="auth-form-body mt-3"> 
    <label for="login_field"> 

      Username or email address 

    </label> 
    <input autocapitalize="off" autocorrect="off" autofocus="autofocus" class="form-control input-block" id="login_field" name="login" tabindex="1" type="text"/> 
    <label for="password"> 

      Password 
     <a href="/password_reset" class="label-link"> 
     Forgot password? 
     </a> 
    </label> 
    <input class="form-control form-control input-block" id="password" name="password" tabindex="2" type="password"/> 
    <input class="btn btn-primary btn-block" data-disable-with="Signing in…" name="commit" tabindex="3" type="submit" value="Sign in"/> 
    </div> 
</form> 
+1

うわー、おかげでたくさん!それは魅力のように働いた、あなたは私の日を救った! –

+0

大歓迎です、私が手伝ってくれてうれしいです。 –

関連する問題