以下是HTML代码段:
<label class="abc">
<span class="bcd">Text1</span>
Text2
</label>
如何使用selenium脚本提取Text2
?我知道如何通过获取Text2
&#34; abc&#34;来提取innerHTML
然后删除&#34; bcd&#34;的innerHTML
类。但我只是在寻找一种更好的方法来解决这个问题。
答案 0 :(得分:0)
试试这个:
WebElement element = driver.findElement(By.xpath("//label[contains(text(),'Text2')]"));
String test = element.getText();
答案 1 :(得分:0)
的xpath:
//label[@class='abc']/child::text()
for Python:
returnText = driver.execute_script("return document.evaluate(\"//label[@class='abc']/child::text()\", document, null, XPathResult.STRING_TYPE, null).stringValue;")
有时,可以有空格,并且它按程序计算为字符串,因此您应该使用数组:
returnText = []
returnText = self.driver.execute_script("var iterator = document.evaluate(\"//label[@class='abc']/child::text()\", document, null, XPathResult.ORDERED_NODE_ITERATOR_TYPE, null); var arrayXpath = new Array(); var thisNode = iterator.iterateNext(); while (thisNode) {arrayXpath.push(thisNode.textContent); thisNode = iterator.iterateNext(); } return arrayXpath;")
for item in returnText:
print item
答案 2 :(得分:-1)
试试这个:
String text2=driver.findElement(By.xpath("//label[@class='abc']").Text;