如何从xhtml获取文本

如何从xhtml获取文本,html,selenium,selenium-webdriver,xhtml,Html,Selenium,Selenium Webdriver,Xhtml,章节信息: 姓名: rr 类型: 剖面类型 章节列表: 对 地位: 第节: 截面条件 很难将这些字段分开,因为它们位于同一个span节点下。我可以看到两种解决方法。 1.使用节点的索引作为锚点 Name: "//span[@id='lblSectionInfo']/font[1]" Type: "//span[@id='lblSectionInfo']/font[2]" Section List: "//span[@id='lblSectionInfo']/font[3]" 2.使用Ja


章节信息:
姓名:
rr

类型: 剖面类型 章节列表: 对 地位: 第节: 截面条件

很难将这些字段分开,因为它们位于同一个span节点下。我可以看到两种解决方法。
1.使用
节点的索引作为锚点

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;
}
函数getTextNode(rootNode){ var nodes=rootNode.childNodes; var fieldNames=[]; var计数=0; 对于(var i=0;i0){ 设text=nodes[i].textContent.trim(); fieldNames[count]=text.substring(0,text.length-1); } } } 返回字段名; }
HTML中没有只读元素。请完整显示这些语句您要传递给
getText()
的是什么?您的
xpath
选择器是什么?我希望这将帮助您发布您正在使用的实际代码。示例不是格式良好的XML。可能导致不适用的原因是某个地方的错误处理程序。第一个解决方法对我来说非常适合。蒂恩斯·巴班。