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

Selenium无法获取目标元素文本,请求正确定位方案

问题分析与解决方案

你的问题核心是错误定位了<br>标签——<br>是换行元素,本身不包含任何文本内容,调用getText()自然无法获取目标文本。目标文本“50,00 € , 9 Plätze vorhanden - anmelden”实际是第4个课程条目下、两个<a>标签之间的文本节点,需要针对这个文本节点或其所在父容器定位。

以下是几种可行的实现方案:

方案1:直接定位目标文本节点

通过XPath找到两个目标<a>标签之间的文本节点,借助JavaScript提取内容(Selenium默认不直接支持定位文本节点):

driver.get("https://www.drk-kv-calw.de/kurse/erste-hilfe-eh/rotkreuzkurs-erste-hilfe.html");
// 定位第4个"Link zur Karte"链接
WebElement mapLink = driver.findElement(By.xpath("(//a[text()='Link zur Karte'])[4]"));
// 提取该链接后的兄弟文本节点内容
String targetText = (String)((JavascriptExecutor)driver).executeScript(
    "return arguments[0].nextSibling.textContent.trim();", mapLink
);
System.out.println("text : " + targetText);

方案2:通过父容器提取文本并过滤

找到第4个课程条目的父容器,提取全部文本后用正则匹配目标内容:

driver.get("https://www.drk-kv-calw.de/kurse/erste-hilfe-eh/rotkreuzkurs-erste-hilfe.html");
// 定位第4个课程条目的容器(可根据页面结构调整标签或class)
WebElement courseItem = driver.findElement(By.xpath("(//div[contains(@class, 'kurs-item')])[4]"));
String fullText = courseItem.getText();
// 正则匹配价格和空位信息
Pattern pattern = Pattern.compile("(\\d+,\\d+ € , \\d+ Plätze vorhanden - anmelden)");
Matcher matcher = pattern.matcher(fullText);
if (matcher.find()) {
    System.out.println("text : " + matcher.group(1));
}

方案3:关联两个<a>标签定位父元素

利用你已定位的两个<a>标签,找到共同父元素后提取文本:

driver.get("https://www.drk-kv-calw.de/kurse/erste-hilfe-eh/rotkreuzkurs-erste-hilfe.html");
WebElement mapLink = driver.findElement(By.xpath("(//a[text()='Link zur Karte'])[4]"));
WebElement registerLink = driver.findElement(By.xpath("(//a[@title='bei Kurs anmelden'])[4]"));
// 获取两个链接的共同父容器
WebElement parentContainer = mapLink.findElement(By.xpath("./ancestor::div[contains(@class, 'kurs-details')]"));
// 提取并过滤文本
String allText = (String)((JavascriptExecutor)driver).executeScript("return arguments[0].textContent;", parentContainer);
String targetText = allText.split("Link zur Karte")[1].split("anmelden")[0].trim();
System.out.println("text : " + targetText);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 14:50:32