Selenium WebDriver如何提取div下的独立文本节点内容
如何用Selenium WebDriver获取指定文本内容?
当然可以实现!针对你遇到的这种情况,我整理了几个实用的方法,帮你精准拿到"My Answer"这部分内容:
方法一:替换排除子元素文本
先定位父元素和子元素,拿到父元素的全部文本后,把h5标签里的内容替换掉,再清理多余空格:WebElement parentDiv = driver.findElement(By.id("cc")); WebElement heading = parentDiv.findElement(By.tagName("h5")); String targetText = parentDiv.getText().replace(heading.getText(), "").trim();方法二:用XPath直接定位文本节点
这种方法更直接,通过XPath表达式直接选中div下的目标文本节点:String targetText = driver.findElement(By.xpath("//div[@id='cc']/text()[last()]")).getText().trim();这里的
text()[last()]会选中div下最后一个独立的文本节点,正好对应你要的"My Answer"。方法三:通过JavaScript执行获取
如果页面结构稳定,也可以借助JS来获取目标文本节点的内容:JavascriptExecutor jsExecutor = (JavascriptExecutor) driver; String targetText = (String) jsExecutor.executeScript("return document.getElementById('cc').childNodes[2].textContent.trim();");注意:childNodes的索引需要根据实际节点顺序调整,不同浏览器解析可能略有差异,使用前要确认索引位置正确。
内容的提问来源于stack exchange,提问作者Melvin Richard
相关产品推荐
相关产品推荐

