Java HtmlUnit单击锚点

时间:2014-09-12 14:48:47

标签: java javascript html htmlunit

我正在尝试使用htmlunit创建Java应用程序以从http://www.jobolizer.com站点获取信息。 所以我必须用我的网址填充文本框,然后点击锚点提交表单。 第一部分效果很好(使用我的数据查找表单和填充表单文本框),但我无法使用getByXPath()方法找到锚点,锚点没有名称或值。 enter image description here

这是我的代码:

public class JobolizerCrawler {
    private final String jobolizerUrl = "http://www.jobolizer.com";
    WebClient webClient = new WebClient(BrowserVersion.FIREFOX_24);

    public JobolizerCrawler () {
        webClient.getOptions().setJavaScriptEnabled(true);
        webClient.getOptions().setCssEnabled(false);
    }
    public void fillTextBoxWithUrl(String vacancyURL) throws IOException {

        final HtmlPage page = webClient.getPage(jobolizerUrl);
        System.out.println(page.asText());
        final HtmlForm form = page.getFirstByXPath("//form[@action='/phpProxy/getJOBolizerResponse_en.php']");
        final HtmlTextInput input = form.getInputByName("url");
        input.setText(vacancyURL);

        HtmlButton button = (HtmlButton) page.getByXPath("/form[@action='/phpProxy/getJOBolizerResponse_en.php']/a[@id=lightboxlink]").get(0);
        HtmlPage page2 = button.click();


        String page2Text = page2.asText();
        System.out.println(page2Text);
    }
}

1 个答案:

答案 0 :(得分:3)

我明白了,这是工作代码:

  HtmlAnchor link = null;
    for (HtmlAnchor anchor : anchors) {
        String str = anchor.asText();
        if (anchor.asText().equals("Start"))
           link = anchor;
    }
    HtmlPage page2 = link.click();