【问题标题】:How to click on button and start javascript with HtmlUnit如何单击按钮并使用 HtmlUnit 启动 javascript
【发布时间】:2018-03-07 14:24:09
【问题描述】:

我正在尝试使用 HtmlUnit 创建一个机器人来自动从网站获取一些产品,我要列出产品,但该网站有几个分支,我要更改为我想要的分支,我需要更改选择并单击按钮的值,但是单击按钮后,我的页面与以前相同,它没有更改任何内容,也没有返回任何错误或警告,有人帮我吗?

        final HtmlPage page = webClient.getPage("url");
        final HtmlSelect select = (HtmlSelect) page.getElementById("s-ch-select-city");

        select.setSelectedAttribute("8", true);

        ScriptResult resultFinal = page.executeJavaScript("document.getElementById('s-ch-change-channel').focus()");
        webClient.waitForBackgroundJavaScript(10000);
        webClient.waitForBackgroundJavaScriptStartingBefore(10000);
        synchronized (page) {
            page.wait(10000);
        }

        Page pageResultFinal = resultFinal.getNewPage();
        HtmlPage pageCascavel = ((HtmlPage) pageResultFinal);

【问题讨论】:

  • 你可能想试试 selenium 与 headless chrome/firefox,它在复杂网站上比 HtmlUnit 效果更好

标签: javascript java htmlunit


【解决方案1】:

无法访问该页面,我只能猜测。

尝试替换

Page pageResultFinal = resultFinal.getNewPage();

Page pageResultFinal = page.getEnclosingWindow().getTopWindow().getEnclosedPage();

并检查记录是否有任何错误。 另外我认为不需要做js的东西。你可以做类似的事情

page.getElementById("s-ch-change-channel").focus();

【讨论】:

    猜你喜欢
    • 2013-05-12
    • 1970-01-01
    • 1970-01-01
    • 2014-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多