setAttribute 在 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");

但它的拍摄日期仅在网站中提到,而不是来自正在传递的代码。


请提出任何建议。我错过了什么吗?


婷婷同学_
浏览 101回答 2
2回答

精慕HU

根据您发布的图片,日期值设置为文本,而不是任何属性所以,你可以尝试 fromDate.setTextContent("01/05/2018");而toDate.setTextContent("15/10/2018");不是设置属性。

陪伴而非守候

在您的代码中,您试图为不存在的元素属性设置值。( 'To','Value(s)/From'这些不是属性,这些只是该节点的内部文本内容。)要设置元素属性,您需要传递一个有效的属性名称(例如,对于一个input元素,您必须将'value'属性作为传递elementObj.setAttribute("value", "YOUR_VALUE"))。在你的情况下,用这个替换你的代码:h.setNodeValue("YOUR_VALUE");// orh.setTextContent("YOUR_VALUE");
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java