setAttribute无法在HtmlUnit中正常工作

时间:2018-10-18 09:58:52

标签: java htmlunit

我正在尝试在网页上设置过滤器,然后再下载。

代码被剪掉

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 :(得分:0)

根据您发布的图片,日期值设置为文本,而不是任何属性

因此,您可以尝试 fromDate.setTextContent("01/05/2018");toDate.setTextContent("15/10/2018");而不是设置属性。

答案 1 :(得分:0)

在您的代码中,您试图为不存在的element属性设置值。
'To''Value(s)/From'不是属性,它们只是该节点。)

要设置元素属性,您需要传递有效的属性名称(例如,对于input元素,您必须将'value'属性传递为elementObj.setAttribute("value", "YOUR_VALUE"))。

在您的情况下,请使用以下代码替换代码:

h.setNodeValue("YOUR_VALUE");
// or
h.setTextContent("YOUR_VALUE");