为什么我的XPath没有返回任何内容?

时间:2014-09-02 15:11:50

标签: java xpath htmlunit

我正在尝试从页面http://vacancycollection.nic.in/cglmarks/获取数字输入文本框的XPath以及提交按钮。

我使用Firebug's Copy XPath option创建了XPath。

这是我输入文本字段的XPath:

HtmlTextInput rollNum = (HtmlTextInput)index.getFirstByXPath("/html/body/table/tbody/tr/td/table/tbody/tr[2]/td/table/tbody/tr/td/table/tbody/tr[2]/td/table/tbody/tr/td[1]/table/tbody/tr/td/table/tbody/tr[2]/td/input");

按钮的XPath是:

HtmlButton button = index.getFirstByXPath("/html/body/table/tbody/tr/td/table/tbody/tr[2]/td/table/tbody/tr/td/table/tbody/tr[2]/td/table/tbody/tr/td[1]/table/tbody/tr/td/table/tbody/tr[5]/td/button");

但是当我尝试访问文本以及按钮字段时,当我尝试使用java.lang.NullPointerException查看代码时,它会引发System.out.println(rollNum.toString());异常。

我正在使用带有Java的HTMLUnit将数据插入到输入字段中,然后单击“提交”按钮。感觉XPath本身有一些错误。什么应该是元素的正确XPath以及如何找到它们?

1 个答案:

答案 0 :(得分:0)

我明白了。实际上xpath没有工作,因为我试图访问由我的javascript代码生成的元素,但webclient没有等待加载元素,因此抛出了java.lang.NullPointerException异常。我添加webClient.waitForBackgroundJavaScript(30 * 1000);等待webClient 30秒,现在我可以使用相同的xpath访问该元素。