首页 > 解决方案 > 如何从由跨度分隔的标签中获取动态文本

问题描述

<Title id ="10" name="Title">
Name
<span>:</span>
Shanthi --// dynamic value
</Title>

String s = driver.findElement(By.id('10')).getText();

预期:名称 Shanthi

实际:名称

如何获取全文?我也试过 getAttribute("innerHtml") 但没用......

TIA

标签: javaseleniumselenium-webdriver

解决方案


你可以试试这个:

WebElement element = driver.findElement(By.xpath("//*[@id='10']"));

JavascriptExecutor js = (JavascriptExecutor)driver;

String firstname= (String) js.executeScript("return arguments[0].childNodes[0].textContent", element);

或者

JavascriptExecutor js = (JavascriptExecutor)driver;

Object firstname= js.executeScript("var value = document.evaluate(\"//table[@id='10']/text()\",document, null, XPathResult.STRING_TYPE, null ); return value.stringValue;");
String Firstname=firstname.toString();

或由安德鲁建议

String name = driver.findElement(By.xpath("//*[@id='10']")).getAttribute("innerHTML");
String[] items = html.split("<span .*?</span>");

推荐阅读