html如下
<div cc="" class="msg-item">
<span dat2263="" class="item-left">
<span data-263="" class="red">*</span>
单号
</span>
</div>
<div datac2263="" class="item-right item-right-one aui-input">
<input tabindex="1" type="text" autocomplete="off" class="aui-input__inner">
</div>
需要定位到页面中的input上,以便于使用自动填充
需要注意的是,定位到item-left的时候,其子节点有两个即【*】和【单号】,可以使用item(0)和item(1)获取
<span dat2263="" class="item-left">
<span data-263="" class="red">*</span>
单号
</span>
最终代码
Document doc = webview.getEngine().getDocument();
NodeList spanNodeList = doc.getElementsByTagName("input");
for (int i = 0; i < spanNodeList.getLength(); i++) {
NamedNodeMap attrs = spanNodeList.item(i).getAttributes();
Node type = attrs.getNamedItem("type");
String typeStr = "";
if (type != null) {
typeStr = attrs.getNamedItem("type").getTextContent();
}
Node classs = attrs.getNamedItem("class");
String classsStr = "";
if (classs != null) {
classsStr = attrs.getNamedItem("class").getTextContent();
}
if("text".equals(typeStr) && "aui-input__inner".equals(classsStr)){
//以input为计算基点
Node parentNode = spanNodeList.item(i).getParentNode();
if(null!=parentNode){
Node parentPreNode = parentNode.getPreviousSibling();
if(null!=parentPreNode){
NodeList childrenNodes = parentPreNode.getChildNodes();
if(childrenNodes.getLength()>0){
//这里找到了单号
System.out.println(childrenNodes.item(1).getTextContent());
//这里计算了子节点长度
System.out.println(childrenNodes.getLength());
}
}
}
}
}
填充的方法
如果是input框:
inputComponent.setValue();
如果是radio框:
inputComponent.click();
如果是textarea框:
inputComponent.setValue("lxxxx");