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

如何在Python Selenium中编写正确XPath路径定位指定文本元素

失效原因

你的原始XPath使用了精确文本匹配规则,但目标<span>标签内的「Derzeit nicht verfügbar.」文本前后存在大量换行、空格等空白字符,完全匹配规则无法命中包含额外空白的实际文本内容。

可行的定位方案

方案1:使用normalize-space()清除空白后精确匹配(推荐,匹配精度最高)

normalize-space()会自动清除文本首尾的所有空白(换行、空格、制表符等),同时将文本内部的连续空白合并为单个空格,完全规避空白字符带来的匹配问题:

# 旧版Selenium写法
driver.find_elements_by_xpath("//span[@class='a-size-medium a-color-price' and normalize-space(text())='Derzeit nicht verfügbar.']")

# 新版Selenium(v4.0+)推荐写法,需要先导入By类
from selenium.webdriver.common.by import By
driver.find_elements(By.XPATH, "//span[@class='a-size-medium a-color-price' and normalize-space(text())='Derzeit nicht verfügbar.']")

方案2:使用contains()模糊匹配

如果你不需要严格匹配完整文本,也可以用contains()直接匹配是否包含目标文本片段:

driver.find_elements_by_xpath("//span[@class='a-size-medium a-color-price' and contains(text(), 'Derzeit nicht verfügbar.')]")

优化方案:结合上层节点缩小匹配范围

如果页面内存在多个相同class的span标签,可以结合上层id为availability的div节点进一步提升定位准确性:

driver.find_elements_by_xpath("//div[@id='availability']//span[normalize-space(text())='Derzeit nicht verfügbar.']")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 09:39:03