我正在尝试在下载之前在网页中设置过滤器。代码剪断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 回答
精慕HU
TA贡献1845条经验 获得超8个赞
根据您发布的图片,日期值设置为文本,而不是任何属性
所以,你可以尝试 fromDate.setTextContent("01/05/2018");
而toDate.setTextContent("15/10/2018");
不是设置属性。
陪伴而非守候
TA贡献1757条经验 获得超8个赞
在您的代码中,您试图为不存在的元素属性设置值。
( 'To','Value(s)/From'这些不是属性,这些只是该节点的内部文本内容。)
要设置元素属性,您需要传递一个有效的属性名称(例如,对于一个input元素,您必须将'value'属性作为传递elementObj.setAttribute("value", "YOUR_VALUE"))。
在你的情况下,用这个替换你的代码:
h.setNodeValue("YOUR_VALUE");
// or
h.setTextContent("YOUR_VALUE");
添加回答
举报
0/150
提交
取消