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

Selenium中忽略撇号定位元素的方法

在Selenium中忽略撇号进行元素搜索的实现方法

要实现用不带撇号的关键词(比如"Hes")匹配带撇号的页面文本(比如"He's"),可以用下面几种实用方法:

方法一:用XPath的translate函数直接在浏览器端处理

XPath的translate()函数可以替换文本中的指定字符,我们可以把目标元素文本里的撇号去掉,再和关键词做匹配。

比如在Python的Selenium中,要找到文本处理后等于"Hes"的元素,代码如下:

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
# 定位所有文本去掉撇号后等于"Hes"的元素
elements = driver.find_elements(By.XPATH, "//*[translate(text(), \"'\", '')='Hes']")

如果是要模糊匹配(比如关键词是文本的一部分),可以把=换成contains():

elements = driver.find_elements(By.XPATH, "//*[contains(translate(text(), \"'\", ''), 'Hes')]")

方法二:先获取所有元素,再本地处理文本匹配

如果XPath的方式满足不了复杂需求,也可以先获取页面上的候选元素,再遍历处理每个元素的文本,去掉撇号后和关键词对比:

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
target_keyword = "Hes"
# 先获取所有可能的元素(比如所有div标签,也可以根据实际调整选择器)
all_elements = driver.find_elements(By.TAG_NAME, "div")
matching_elements = []

for elem in all_elements:
    # 去掉元素文本里的撇号
    cleaned_text = elem.text.replace("'", "")
    # 匹配关键词(这里用精确匹配,也可以改成in做模糊匹配)
    if cleaned_text == target_keyword:
        matching_elements.append(elem)

这两种方法里,XPath的方式效率更高,因为过滤逻辑在浏览器端完成;本地遍历的方式更灵活,适合需要处理多种特殊字符的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 16:52:42