很难分离这些字段,因为它们位于同一个跨度节点下。我可以看到两种变通方法。
1、使用索引
<font>
节点作为锚点。
Name: "//span[@id='lblSectionInfo']/font[1]"
Type: "//span[@id='lblSectionInfo']/font[2]"
Section List: "//span[@id='lblSectionInfo']/font[3]"
2.使用JavaScript查找文本节点以获取字段名,然后使用Selenium查找
<字体(>);
节点以获取其值。最后,将它们映射到一起。
function getTextNode(rootNode) {
var nodes = rootNode.childNodes;
var fieldNames = [];
var count=0;
for (var i = 0; i < nodes.length; i++) {
if ((nodes[i].nodeType == Node.TEXT_NODE)) {
if(nodes[i].textContent.trim().indexOf(':')>0) {
let text = nodes[i].textContent.trim();
fieldNames[count] = text.substring(0,text.length-1);
}
}
}
return fieldNames;
}