2014-09-02 79 views
0

我正在尝试获取数字输入文本框的XPath以及页面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());

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

+0

对于你来说,最好的办法是学习编写xpaths - 复制它们很少是最好的解决方案。 – stuXnet 2014-09-03 12:00:43

+0

你可以发布一个小的html样本,你有同样的问题? – stuXnet 2014-09-03 12:01:28

回答

0

我想通了。其实XPath不工作,因为我试图访问由我的javascript代码生成的元素,但webclient没有等待元素加载,因此引发了java.lang.NullPointerException异常。我加了webClient.waitForBackgroundJavaScript(30 * 1000);等待webClient 30秒,现在我可以使用相同的xpath访问元素。

相关问题