在Selenium Java中获取指定XML结构内div的目标文本内容
获取指定div下第一段文本的解决方法
下面是几种不依赖文本内容的实现方式:
用XPath直接定位第一个有效文本节点
这种方法最可靠,直接通过XPath筛选出div下的第一个非空文本节点:String firstText = driver.findElement(By.xpath("//div[@class='publishing']/text()[normalize-space()][1]")).getText().trim(); System.out.println(firstText);原理:
text()会选中div下所有文本节点,normalize-space()用来过滤掉纯空格、换行的空节点,[1]取第一个符合条件的节点,最后trim去除首尾多余空格。通过JavaScript脚本提取
借助JS直接访问DOM节点的子文本内容:WebElement publishingDiv = driver.findElement(By.xpath("//div[@class='publishing']")); String firstText = (String) ((JavascriptExecutor) driver).executeScript( "return arguments[0].childNodes[0].textContent.trim();", publishingDiv); System.out.println(firstText);原理:childNodes[0]对应div里的第一个文本节点,textContent拿到原始文本后trim处理。
分割getText()结果(仅作备选)
如果页面里两段文本一定是用换行分隔的,可以临时用这个方法,但不如前两种稳定:String fullText = driver.findElement(By.xpath("//div[@class='publishing']")).getText(); String firstText = fullText.split("\\n")[0].trim(); System.out.println(firstText);注意:如果页面渲染时换行规则变了,这个方法会失效,优先用前两种。
内容的提问来源于stack exchange,提问作者Maymanaf
相关产品推荐
相关产品推荐

