2014-09-02 4 views
0

Я пытаюсь получить XPath текстового поля ввода номера, а также кнопку отправки на странице http://vacancycollection.nic.in/cglmarks/.Почему мой XPath ничего не возвращает?

Я создал XPath, используя Firebug's Copy XPath option.

Вот мой 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 для вставки данных в поля ввода и нажмите кнопку отправки. Похоже, в самих XPaths есть некоторая ошибка. Какими должны быть правильные XPath для элементов и как их найти?

+0

Лучший способ для вас - научиться писать xpaths - копирование их редко является лучшим решением. – stuXnet

+0

Не могли бы вы разместить небольшой образец html, где у вас такая же проблема? – stuXnet

ответ

0

Я понял. На самом деле xpath не работал, потому что я пытался получить доступ к элементам, которые получал сгенерированный моим кодом javascript, но веб-клиент не ожидал загрузки элементов, поэтому было исключено исключение java.lang.NullPointerException. Я добавил webClient.waitForBackgroundJavaScript(30 * 1000);, чтобы ждать webClient в течение 30 секунд, и теперь я могу получить доступ к элементу, используя тот же xpath.

Смежные вопросы