setAttribute не работает должным образом в HtmlUnit - PullRequest
0 голосов
/ 18 октября 2018

Я пытаюсь установить фильтр на веб-странице перед загрузкой.

Код пропущен

webClient.waitForBackgroundJavaScript(10 * 1000);
HtmlElement fromDate = pageAnchorReport.getFirstByXPath("//div[contains(@class,'x-grid3-col-FilterFieldFilterFrom')]"); 
fromDate.setAttribute("Value(s)/From","01/05/2018");
System.out.println("1");

HtmlElement toDate = pageAnchorReport.getFirstByXPath("//div[contains(@class,'x-grid3-col-FilterFieldFilterTo')]"); 
toDate.setAttribute("To","15/10/2018");
System.out.println("2");

Но указаны только даты его получения, которые указаны на веб-сайте, а не из кода, который я передаю.

Любые предложения, пожалуйста.Я что-то упустил?

Спасибо

Ответы [ 2 ]

0 голосов
/ 23 октября 2018

В вашем коде вы пытаетесь установить значение для атрибута элемента, который не существует.('To', 'Value(s)/From' Это не атрибуты, это просто внутреннее текстовое содержимое этого узла.)

Чтобы установить атрибут элемента, вам нужно передать действительное имя атрибута (например, для *Элемент 1005 *, который необходимо передать атрибуту 'value' как elementObj.setAttribute("value", "YOUR_VALUE")).

В вашем случае замените код следующим:

h.setNodeValue("YOUR_VALUE");
// or
h.setTextContent("YOUR_VALUE");
0 голосов
/ 23 октября 2018

В соответствии с вашим опубликованным изображением значение даты устанавливается в виде текста, а не в любом атрибуте

Таким образом, вы можете попробовать fromDate.setTextContent("01/05/2018"); и toDate.setTextContent("15/10/2018"); вместо установки атрибута.

...