Я пытаюсь войти на account.mojang.com/login через HtmlUnit. Я не мог найти форму для входа в систему, поэтому я зацикливал все формы на странице, и если бы у них была кнопка входа в систему, это заработало бы все. Как я могу получить форму, которую я ищу? (Вот код, он не работает, хотя.)HtmlUnit - Как получить правильную форму?
@SuppressWarnings("resource")
public static void nk(){
String username = Sniper.username;
String email = Sniper.email;
String password = Sniper.pass;
System.out.println("Sniping!");
final WebClient web = new WebClient();
try{
final HtmlPage page1 = web.getPage("https://account.mojang.com/login");
for(HtmlForm loginForm: page1.getForms()){
if(loginForm.getInputByName("Log in")!=null){
final List<HtmlInput> loginButton = loginForm.getInputsByValue("Log in");
final HtmlTextInput emailEnter = loginForm.getInputByName("E-mail");
emailEnter.setValueAttribute(email);
final HtmlTextInput passbutton = loginForm.getInputByName("Password");
passbutton.setValueAttribute(password);
final HtmlPage page2 = loginButton.get(0).click();
System.out.println(page2);
changeUsername1(page2.getAnchorByText("Change").click(), username, password);
}}
}catch(Exception e){
e.printStackTrace();
sniped = true;
}
}
@SuppressWarnings({ "resource", "unused" })
public static void changeUsername1(Page page1,String username, String password){
final WebClient web = new WebClient();
try{
final HtmlPage page = web.getPage(page1.getUrl());
for(HtmlForm form :page.getForms()){
if(form.getInputsByValue("Change name")!=null){
final List<HtmlInput> button = form.getInputsByValue("Change name");
final HtmlTextInput textField = form.getInputByName("New profile name");
textField.setValueAttribute(username);
final HtmlTextInput textField1 = form.getInputByName("Password");
textField1.setValueAttribute(password);
final HtmlPage page2 = button.get(0).click();
form.getButtonByName("Yes").click();
}
}
} catch (IOException e) {
e.printStackTrace();
sniped = true;
}
sniped = true;
}
Я использую Chrome и тестирование его сейчас. :) Благодаря! – InfIV
Я использовал имя, которое вы сказали, но получил эту ошибку: com.gargoylesoftware.htmlunit.ElementNotFoundException: elementName = [form] attributeName = [name] attributeValue = [authenticityToken] at com.gargoylesoftware.htmlunit.html.HtmlPage.getFormByName (HtmlPage.java:638) у меня.InfIV.Sniper.Stuff.nk (Stuff.java:38) у меня.InfIV.Sniper.Sniper.setStuff (Sniper.java:54) у меня.InfIV.Sniper. Sniper.main (Sniper.java:42) Строка 38 окончательна HtmlForm loginForm = page1.getFormByName ("authenticityToken"); Я не знаю, почему это происходит – InfIV
Используйте 'getElementById ('loginForm')' и отсылайте его в 'HTMLForm' – KDM