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

Python Selenium:使用XPath定位子元素获取指定元素的问题

正确的XPath写法及代码修正

针对你的需求,直接给出对应的XPath定位器,同时修正代码中获取文本的小问题(Selenium获取元素文本标准方式是.text,而非get_attribute("text")):

elems = driver.find_elements_by_xpath("//div[@class='xyz']")
for elem in elems:
   # 获取<p>Comment</p>元素
   comment = elem.find_element_by_xpath(".//p[text()='Comment']")
   print(comment.text)
   # 获取两个<a href>元素
   files = elem.find_elements_by_xpath(".//buttons/ul/li/a")
   for file in files:
      print(file.text) # 依次输出Name 1、Name 2
      file.click()

XPath定位说明:

  • 定位Comment元素:.//p[text()='Comment']
    • 开头的.表示从当前elem(class为xyz的div)的上下文开始查找,避免全局搜索干扰
    • [text()='Comment']通过精准匹配文本内容,确保定位到目标p标签
  • 定位a元素:.//buttons/ul/li/a
    • 同样以.开头,基于当前elem的上下文
    • 按照HTML层级结构,直接定位到buttons容器下ul列表内的所有a标签,刚好匹配你需要的两个链接

如果HTML中Comment的位置固定,也可以用层级路径定位:".//div/h2/div/p",不过文本匹配的方式容错性更强,即便结构微调也能稳定找到目标元素。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 16:48:10