Java HTMLUnit的密码设置有问题

Java HTMLUnit的密码设置有问题,java,eclipse,login,passwords,htmlunit,Java,Eclipse,Login,Passwords,Htmlunit,这是我的类,应该通过在其字段中设置特定的用户名和密码登录到网站。 运行它时,它会一直工作到设置用户名为止,但它似乎在查找/填充密码框方面有问题。 我在HTML中仔细检查了它,以确保输入了正确的密码框名称,但仍然不起作用。 谢谢你的帮助 import com.gargoylesoftware.htmlunit.BrowserVersion; import com.gargoylesoftware.htmlunit.WebClient; import com.gargoylesoftware.htm

这是我的类,应该通过在其字段中设置特定的用户名和密码登录到网站。 运行它时,它会一直工作到设置用户名为止,但它似乎在查找/填充密码框方面有问题。 我在HTML中仔细检查了它,以确保输入了正确的密码框名称,但仍然不起作用。 谢谢你的帮助

import com.gargoylesoftware.htmlunit.BrowserVersion;
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 FormSubmit {

    public static void main(String[] args){
        submittingForm();
    }

    public static void submittingForm() {

        java.util.logging.Logger.getLogger("com.gargoylesoftware").setLevel(java.util.logging.Level.OFF);



        try (final WebClient webClient = new WebClient(BrowserVersion.CHROME)) {

            webClient.getCookieManager().setCookiesEnabled(true);
            webClient.setJavaScriptEnabled(true);

            final HtmlPage page1 = webClient.getPage("website");

            final HtmlForm form = page1.getFormByName("formname");

            final HtmlSubmitInput loginButton = form.getInputByName("inputname");
            final HtmlTextInput username = form.getInputByName("name");

            username.setValueAttribute("namevalue");         
            System.out.println(username);

            final HtmlTextInput password = form.getInputByName("password");
            password.removeAttribute("disabled");
            password.setValueAttribute("passvalue");
            System.out.println(password);

            final HtmlPage page2 =  (HtmlPage) form.getInputByValue(" Login ").click();
            System.out.println(page2.getBody());
        }
        catch (Exception e){
        }
    }
}

我猜您使用的是旧的HmltUnit版本,请更新您的版本(最好是新版本)

下面的代码非常有效:

请注意:

  • 默认情况下,Cookie和Javascript处于启用状态,您不需要将它们设置为
    true
  • 密码
    输入应该是
    HtmlPasswordInput
    ,否则您会得到
    ClassCastException


  • 我猜您使用的是旧的HmltUnit版本,请更新您的版本(最好是新版本)

    下面的代码非常有效:

    请注意:

  • 默认情况下,Cookie和Javascript处于启用状态,您不需要将它们设置为
    true
  • 密码
    输入应该是
    HtmlPasswordInput
    ,否则您会得到
    ClassCastException


  • 什么是网站,什么是用户名/密码,其他人可以复制这个问题?这是网站:但我不愿意给出用户名和密码。如果你能找到一种方法,在屏幕上打印假用户名和密码的值,一旦你分配了它,这可能会解决问题,因为我没有登录问题,但分配密码的值。感谢您的帮助什么是网站,什么是用户名/密码,其他人可以复制这个问题?这是网站:但我不愿意提供用户名和密码。如果你能找到一种方法,在屏幕上打印假用户名和密码的值,一旦你分配了它,这可能会解决问题,因为我没有登录问题,但分配密码的值。谢谢你的帮助太好了,如果答案有用的话,你能不能把它提高一下?我想我在这方面没有足够的声誉:(太好了,如果答案有用的话,你能不能把它提高一下?我想我在这方面没有足够的声誉:(
    public class FormSubmit {
    
        public static void main(String[] args) throws Exception {
            try (final WebClient webClient = new WebClient(BrowserVersion.CHROME)) {
                final HtmlPage page1 = webClient.getPage("https://applicazioni.gse.it/GWA_UI/");
    
                System.out.println(page1.asXml());
                final HtmlForm form = page1.getFormByName("aspnetForm");
    
                final HtmlTextInput username = form.getInputByName("ctl00$ctl00$cphFormAppl$cphRisultatiRicerca$txtUserid");
    
                username.setValueAttribute("namevalue");         
    
                final HtmlPasswordInput password = form.getInputByName("ctl00$ctl00$cphFormAppl$cphRisultatiRicerca$txtPassword");
                password.setValueAttribute("passvalue");
    
                final HtmlPage page2 = (HtmlPage) form.getInputByValue(" Login ").click();
                System.out.println(page2.asText());
            }
        }
    }