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

使用By.XPATH按双条件定位元素并点击其第二个兄弟元素问题排查

问题分析与修复

你的XPath表达式存在三个关键错误:

  • 语法错误:followingsibling应为following-sibling(XPath轴名称必须包含连字符)
  • 逻辑错误:同一个<td>元素不可能同时包含"Renewal"和"1"两个文本值,这两个条件对应同一行<tr>下的不同单元格
  • 语法错误:@text()是错误写法,获取元素文本内容需用text()函数,而非属性调用
正确的XPath写法

根据表格结构,提供两种通用修复方案:

方案1:先定位符合条件的行,再找目标元素

先匹配同时包含"Renewal"和"1"的行,再在该行内定位目标兄弟元素:

driver.find_element(By.XPATH, "//tr[td[text()='Renewal'] and td[text()='1']]/td/following-sibling::td[2]/a").click()

方案2:从Type列单元格向上关联父行验证条件

先定位包含"Renewal"的单元格,再向上找到父行并验证该行存在Seq#为1的单元格,最后定位目标元素:

driver.find_element(By.XPATH, "//td[text()='Renewal']/parent::tr[td[text()='1']]/td/following-sibling::td[2]/a").click()

额外优化提示

如果单元格文本存在空格、换行等干扰字符,可使用normalize-space()处理,避免匹配失败:

driver.find_element(By.XPATH, "//tr[td[normalize-space(text())='Renewal'] and td[normalize-space(text())='1']]/td/following-sibling::td[2]/a").click()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 19:31:22