首页 > 解决方案 > 使用 Selenium 自动化聊天机器人时如何从最新的聊天气泡中获取文本

问题描述

当使用 Selenium 自动化聊天机器人时,我想打印最新的聊天气泡文本。但相反,代码正在打印聊天的第一个聊天气泡中的文本。如果所有聊天气泡都具有相同的 html 代码,如何获取最新的聊天气泡文本?

在此处输入图像描述

我用来从聊天气泡中获取文本的 selenium 代码。

String kk = driver.findElement(By.xpath("//*[@class='Linkify']//span")).getText();

我要获取其文本的聊天气泡的 html 代码。所有聊天气泡都有相同的代码,不同之处在于跨度标签之间的文本

<div class="bubble-content">
  <span class="message-content">
    <div style="white-space: pre-wrap;">
      <span class="Linkify">
        <span>You can bookmark this tab, I am always here. I will be in touch once I get any updates.
        </span>
      </span>
    </div>
  </span>
</div> 

标签: javahtmlseleniumselenium-webdriver

解决方案


findElement将返回 DOM 中的第一个匹配元素,即第一个聊天气泡。玩具可以findElements用来定位所有这些并获取列表中最后一个的文本

List<WebElement> allChats = driver.findElements(By.xpath("//*[@class='Linkify']//span"))
String kk = allChats.get(allChats.size() - 1).getText();

推荐阅读