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

如何在Selenium WebDriver中正确合并两条独立XPath路径?

解决Selenium XPath双条件定位的问题

嘿,我完全懂你的困扰——你之前用Python的or来合并XPath路径是踩了个典型的小坑!因为Python里的or是逻辑判断运算符,它只会返回第一个非空的字符串,根本不是XPath语法里用来合并路径的方式,所以才会出现只返回前半段或后半段结果的情况。

针对你的双条件需求,正确的XPath写法应该是这样的

你的核心需求是定位同时满足两个条件的span标签:

  • 自身拥有correct类名
  • 父级label标签属于带有answer_correction类名的li标签

把这两个条件通过XPath的层级关系和属性筛选结合起来,就能精准定位目标元素:

answers = browser.find_elements_by_xpath('//li[@class="answer_correction"]/label/span[@class="correct"]')

这个XPath的逻辑很清晰:先找到所有class为answer_correction的li元素,再定位它们子层级的label,最后筛选出label下class为correct的span——完美匹配你要的双条件,而且元素顺序会严格遵循它们在DOM中的出现顺序,完全满足你“顺序至关重要”的要求。

补充:如果需要合并两个独立XPath的结果

如果你之后有需要取两个不同路径元素的并集(而非同时满足条件),XPath里要用|符号来分隔路径,比如:

answers = browser.find_elements_by_xpath('//li[@class="answer_correction"]/label/span | //span[@class="correct"]')

不过这个写法并不适用于你当前的需求,只是作为扩展知识点分享~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:44:26