JavaでHtmlUnitを使用してWebサイトにログインする簡単なタスクを作成したいとします。私が検索したすべてのコンテンツから、通常、人々は検索する要素名またはIDを持っています。しかし、私の特別なケースでは、それはありません。HtmlUnitを使用したログインとパスワードのヘルプ
<input type="email" class="js-email form-control input-lg" placeholder="Enter email">
<input type="password" class="js-password form-control input-lg" placeholder="Enter password">
<button type="submit" class="js-login btn btn-success btn-lg" style="width: 140px" disabled="">
<span class="vs-login-text">Log In</span><i class="vs-spinner fa fa-refresh fa-spin"></i>
</button>
対応するXPathは次のとおりです:=
//*[@id="login"]/div[3]/form/div[2]/input[2]
これは、Javaコードである私は、ウェブサイトからのユーザー名/パスワード]フィールドをクリックして、(クローム)検査ヒットすると、これは私が得るものです私はオンライン参照実装:
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.HtmlElement;
import com.gargoylesoftware.htmlunit.html.HtmlOption;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import com.gargoylesoftware.htmlunit.html.HtmlSelect;
import com.gargoylesoftware.htmlunit.html.*;
import java.util.*;
public class V1 {
public static void main(String[] args) throws Exception{
final WebClient webClient = new WebClient();
final HtmlPage page = webClient.getPage("Site address");
//Trying something here
final List<?> divs = page.getElementsByTagName("<input>");
System.out.println("It is: " + x);
HtmlElement usrname = page.getElementByName("email");
usrname.click();
usrname.type("[email protected]");
HtmlElement psswrd = page.getElementByName("password");
psswrd.click();
psswrd.type("mypassword");
HtmlElement signin = page.getElementByName("submit");
signin.click();
System.out.println(page.getTitleText());
webClient.close();;
}
私は要素名/ IDを取得することができませんので、手の中のタスクは上記の作業と要素が見つかりません例外をスローしません、しかし、簡単です。私はタグ(inputと)で要素を印刷しようとしましたが、空の[]が返されました。
どのような変更や追加が必要なのかを誰でもガイドできるので、メールとパスワードの組み合わせを追加してログインできますか?
最初のコード行でArrayOutOfBoundエラーが発生します。入力[0]、入力[1]を試し、入力[2]を試し、入力[3]を試してみてget(0-2) – hammad2506