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

Selenium循环点击指定元素问题:始终定位首个元素的解决方法

Selenium循环定位元素异常:重复点击首个元素的解决方案

问题场景

需要通过循环逐个点击满足以下条件的页面元素:

  • 元素的data-tooltip属性值匹配列表a中的每一项
  • 元素的href属性包含/transaction/

原实现代码:

for i in a:
        tx_click = driver.find_element(By.XPATH, '//a[contains(@data-tooltip, i) and contains(@href, "/transaction/")]').click()
        driver.back()

目标匹配的列表a:

['5e8d1',
 '60e6f',
 '3ac8d',
 '598f5',
 'fab93']

运行异常:代码始终重复点击第一个元素(data-tooltip为5e8d1的元素),只有在XPath中直接写死精确字符串时才能正常匹配对应元素。

问题原因

原XPath表达式中,变量i被直接写入字符串,未被解析为循环中的当前值,XPath会把i当成字面量匹配,导致每次都定位到第一个符合contains(@data-tooltip, "i")的元素。

解决方案

使用Python的f-string将变量i动态嵌入XPath表达式,让每次循环生成对应当前列表项的定位规则:

修改后的代码:

for i in a:
        tx_click = driver.find_element(By.XPATH, f'//a[contains(@data-tooltip, "{i}") and contains(@href, "/transaction/")]').click()
        driver.back()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 01:25:06