如何从xhtml中获取文本
How to get text from xhtml
<div>
<fieldset>
<legend class="lheader">Section Information:</legend>
<span id="lblSectionInfo">
Name:
<font style="font-weight:normal">rr</font>
<br>
Type:
<font style="font-weight:normal">Section Type </font>
Section List:
<font style="font-weight:normal"> Yes </font>
Status:
<font style="font-weight:normal">
Section:
<font style="font-weight:normal">Section Condition</font>
<br>
</span>
</fieldset>
</div>
我必须从屏幕的上述“部分信息”部分获取文本。
我尝试了 getText()
并且它 return 是空白行,尝试了 getAttribute("innerText")
并且它 return 是 N/A,尝试了 getAttribute("innerHTML")
并且它是 returns N/A
不确定如何获得完整的文本或单独的测试,例如栏目名称
should return text Section "RR" 等。我使用的 Xpath 是正确的。
非常感谢任何帮助。
仅供参考,我正在使用下面的 Xpath 获取文本。
//div[@id = 'TestView5']//span[@id = 'lblSectionInfo']
我的 Xpath 是正确的,因为我可以在 Selenium 使用它时突出显示此部分的完整文本 IDE。
很难将这些字段分开,因为它们在同一个跨度节点下。我可以看到两个解决方法。
1.使用<font>
节点的索引作为锚点。
Name: "//span[@id='lblSectionInfo']/font[1]"
Type: "//span[@id='lblSectionInfo']/font[2]"
Section List: "//span[@id='lblSectionInfo']/font[3]"
2.使用JavaScript查找文本节点获取字段名,然后使用Selenium查找<font>
节点获取它们的值。最后,将它们映射到一起。
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;
}
<div>
<fieldset>
<legend class="lheader">Section Information:</legend>
<span id="lblSectionInfo">
Name:
<font style="font-weight:normal">rr</font>
<br>
Type:
<font style="font-weight:normal">Section Type </font>
Section List:
<font style="font-weight:normal"> Yes </font>
Status:
<font style="font-weight:normal">
Section:
<font style="font-weight:normal">Section Condition</font>
<br>
</span>
</fieldset>
</div>
我必须从屏幕的上述“部分信息”部分获取文本。
我尝试了 getText()
并且它 return 是空白行,尝试了 getAttribute("innerText")
并且它 return 是 N/A,尝试了 getAttribute("innerHTML")
并且它是 returns N/A
不确定如何获得完整的文本或单独的测试,例如栏目名称 should return text Section "RR" 等。我使用的 Xpath 是正确的。 非常感谢任何帮助。 仅供参考,我正在使用下面的 Xpath 获取文本。
//div[@id = 'TestView5']//span[@id = 'lblSectionInfo']
我的 Xpath 是正确的,因为我可以在 Selenium 使用它时突出显示此部分的完整文本 IDE。
很难将这些字段分开,因为它们在同一个跨度节点下。我可以看到两个解决方法。
1.使用<font>
节点的索引作为锚点。
Name: "//span[@id='lblSectionInfo']/font[1]"
Type: "//span[@id='lblSectionInfo']/font[2]"
Section List: "//span[@id='lblSectionInfo']/font[3]"
2.使用JavaScript查找文本节点获取字段名,然后使用Selenium查找<font>
节点获取它们的值。最后,将它们映射到一起。
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;
}