java - 使用 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>
解决方案
findElement
将返回 DOM 中的第一个匹配元素,即第一个聊天气泡。玩具可以findElements
用来定位所有这些并获取列表中最后一个的文本
List<WebElement> allChats = driver.findElements(By.xpath("//*[@class='Linkify']//span"))
String kk = allChats.get(allChats.size() - 1).getText();
推荐阅读
- javascript - 从函数返回的数组未在另一个函数中捕获
- android - 这个变量在 lambda 参数中是什么意思?
- javascript - div文本失去焦点时需要创建段落元素
- python - 我怎样才能正确使用网址总是显示导入错误
- java - Hibernate 是否缓存新创建的实例
- macos - 在 Visual Studio Code 中看不到正在调试的进程的 projectname.dll
- reactjs - 如何在 TypeScript 中为 React Apollo Query 组件编写 HOC?
- python-2.7 - 如何修复python2.7中的错误“TypeError:'tuple'对象不可调用”
- java - 在 GLFW Open Gl 中,其创建的帧缓冲区在屏幕拉伸时不会改变大小
- azure - 当 AppService 计划自动扩展时,HostedService 是否会自动扩展?