javafx-关于w3c.dom中获取纯文本节点的操作1.0.0

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");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值