Java 获取包含html标记的WebElement的文本
如何使用Selenium获取WebElement的内部HTML 这就是我迄今为止所尝试的:Java 获取包含html标记的WebElement的文本,java,javascript,html,selenium,Java,Javascript,Html,Selenium,如何使用Selenium获取WebElement的内部HTML 这就是我迄今为止所尝试的: WebElement divData=driver.findElement(By.id("data")); divData.getText(); //returns empty OR divData.getAttribute("innerHTML"); //returns empty OR String script="return arguments[0].innerHTML";
WebElement divData=driver.findElement(By.id("data"));
divData.getText(); //returns empty
OR
divData.getAttribute("innerHTML"); //returns empty
OR
String script="return arguments[0].innerHTML";
String result=(String) ((JavascriptExecutor)driver).executeScript(script,divData);
System.out.println(""+result); //empty
我从评论中看到
{quote}
你好,这里是学校
{quote}
在树状视图中表示上述内容:
因此,基本webdriver方法WebElement.getText应该适用于任何包含文本的位置正确的元素
因此,有两种可能找到webelement的文本:
我尝试从与上述div相关的所有转租儿童处获取文本:
List<WebElement> childsOfDiv =driver.findElements(By.cssSelector(#data>*));
for(WebElement iter: childsOfDiv){
System.out.println(iter.getText());
}
希望这对你有用。你好,这里是学校,你有什么问题?拿着部门的content@GrishmaOswal你确定数据存在吗。数据有任何HTML吗?您可以显示运行此操作所针对的标记吗?您正在使用webdriver吗?
String child1CSS="#data>b";
String child2CSS="#data>br";
public String getTextInvolvingJs(String cssLocator)
{
JavascriptExecutor js = (JavascriptExecutor) driver;
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("var x = $(\""+cssLocator+"\");");
stringBuilder.append("return x.text().toString();") ;
String res= (String) js.executeScript(stringBuilder.toString());
return res;
}
String foundText1= getTextInvolvingJs(child1CSS);
String foundText2= getTextInvolvingJs(child2CSS);