【问题标题】:HtmlUnit button click not submittingHtmlUnit按钮点击不提交
【发布时间】:2016-11-28 08:53:07
【问题描述】:

我正在尝试单击 HtmlUnit 中的按钮以登录到站点 (m.pge.com),但它不起作用。浏览器停留在同一页面上。我在另一个网站上遇到了类似的问题。我尝试搜索,但没有得到明确的答案。 有什么想法我可能做错了吗?

这里是代码..

    Web_Client = new WebClient(BrowserVersion.CHROME);
    Web_Client.getOptions().setCssEnabled(false);
    Web_Client.getOptions().setThrowExceptionOnScriptError(false);
    Web_Client.setJavaScriptTimeout(15000);
    Web_Client.getOptions().setRedirectEnabled(true);

    //Web_Client.setAjaxController(new NicelyResynchronizingAjaxController());
    // load home page
    HtmlPage page = Web_Client.getPage("https://m.pge.com/#login");
    HtmlTextInput userName = loginForm.getFirstByXPath("//*[@id=\"usernameField\"]");
    HtmlPasswordInput passWord = loginForm.getFirstByXPath("//*[@id=\"passwordField\"]");
    userName.setValueAttribute(user);
    passWord.setValueAttribute(password);
    HtmlButton button = null;
    DomNodeList<DomElement> buttonList =  page.getElementsByTagName("button");
    for (Iterator buttonIter = buttonList.iterator(); buttonIter.hasNext();) {
        DomElement domElement = (DomElement) buttonIter.next();
        if(domElement.asText().equals("SIGN IN")) {
            button = (HtmlButton)domElement;
        }
    }

    loginpage = button.click();

【问题讨论】:

    标签: javascript forms button click htmlunit


    【解决方案1】:

    输入评论太乏味和不清楚,所以我输入它作为答案,并会随着进度更新。

    第 1 部分:登录 第一件事是你确定你正确地定位了按钮,你在哪里初始化了 HtmlPage 登录页面。通常,当您分配时

    loginpage = button.click();
    

    它会为您提供登录页面,但有时奇怪的是它不分配新页面而是更改当前页面。那是你的

    page
    

    您可以尝试在单击按钮之前和单击按钮之后将其打印出来,以查看此页面是否更改?那是

    System.out.println(page.asText());
    button.click(); // no need to assign page, if the page changes itself
    System.out.println(page.asText());
    

    第 2 部分:搜索

    当您完成输入文本框和按钮单击后,您必须在再次搜索后定位更改元素并获取其内容,例如,如果它是一个元素,您可能应该在按钮单击后定位该元素并获取之后想要的内容。如果您在单击按钮之前定位它,则该元素中的内容不会自行更改,您需要再次获取它。

    【讨论】:

      猜你喜欢
      • 2013-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-26
      • 2016-01-11
      • 1970-01-01
      相关资源
      最近更新 更多