You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何提取<br>标签后文本?Selenium获取随机车型名称失败求助

问题解决方法

1. 报错原因

你的JavaScript选择器#output-container p无法找到对应元素,导致返回null,进而触发Cannot read properties of null错误。从你提供的HTML代码来看,目标<p>标签并没有嵌套在id="output-container"的元素中,选择器写法错误。

2. 修正后的提取代码

方案一:精准定位文本节点提取

直接定位目标<p>标签,获取其最后一个文本节点(即车型名称所在节点):

String carName = (String) jsExecutor.executeScript("const p = document.querySelector('p[style=\"margin:1em auto; padding:0 1em; max-width:700px;\"]'); return p.childNodes[p.childNodes.length - 1].textContent.trim();");
System.out.println(carName);

方案二:拆分文本内容提取

如果页面中只有这一个目标<p>标签,可获取其innerText后按换行拆分,取最后有效行:

String text = (String) jsExecutor.executeScript("return document.querySelector('p').innerText;");
// 拆分并过滤空行,提取最后一行车型名称
String carName = Arrays.stream(text.split("\\n"))
                        .map(String::trim)
                        .filter(line -> !line.isEmpty())
                        .reduce((first, last) -> last)
                        .orElse("");
System.out.println(carName);

说明

  • 方案一的选择器通过样式精准匹配目标<p>标签,避免页面其他<p>元素干扰;若页面仅存在这一个目标<p>,可简化为document.querySelector('p')。
  • 两种方案都能适配页面随机生成的车型名称,精准提取类似2013 Lamborghini Egoista的内容。

内容的提问来源于stack exchange,提问作者user24952292

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 17:37:12