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

Selenium获取嵌套Span中URL文本#2011失败,求修正代码

修正Selenium代码获取GitHub Issue的Fixed by关联PR编号

原代码的核心错误

  • XPATH定位逻辑错误:你将data-issue-and-pr-hovercards-enabled误认为是class属性,但它是span标签的自定义data属性,原XPATH无法匹配到目标元素。
  • 内容提取方式错误:你试图从span元素获取a属性,但span本身没有该属性,#2011是子元素<a>的文本内容,需要定位到这个a标签再提取文本。

修正后的代码方案

提供两种可靠的实现方式:

方案1:通过父span的data属性定位子a标签

# 定位到目标a标签并获取文本
pr_link_text = driver.find_element(By.XPATH, '//span[@data-issue-and-pr-hovercards-enabled]//a[contains(@href, "/pull/")]').text
print(pr_link_text)  # 输出结果:#2011

方案2:结合"Fixed by"文本精准定位

# 基于"Fixed by"文本定位相邻的a标签
pr_link_text = driver.find_element(By.XPATH, '//span[contains(text(), "Fixed by")]/following-sibling::a').text
print(pr_link_text)

新手额外建议

  • 定位元素前,可先用浏览器开发者工具(F12)的控制台测试XPATH:输入$x('你的XPATH表达式'),检查是否能匹配到目标元素。
  • 若页面加载较慢,建议添加显式等待,避免因元素未加载完成导致定位失败:
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    # 最多等待10秒,直到元素加载完成
    pr_link = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.XPATH, '//span[@data-issue-and-pr-hovercards-enabled]//a[contains(@href, "/pull/")]'))
    )
    pr_link_text = pr_link.text
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 00:35:19