2014-09-02 116 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訪問元素。

相關問題