使用Python Selenium提取Gitee Issue描述文本返回空白的解决方法
解决Selenium提取Gitee Issue描述空白的问题
问题原因
你当前代码的错误在于使用By.CLASS_NAME时传入了多个类名(git-issue-description markdown-body),而By.CLASS_NAME定位器仅支持单个类名,空格会被当作类名的一部分,导致无法匹配到目标元素,最终返回空白文本。
修改方案
以下是两种可行的定位方式,同时建议添加显式等待确保元素加载完成:
方案1:使用CSS_SELECTOR定位(推荐)
CSS选择器支持直接匹配同时拥有多个类的元素,写法为类名前加.,多个类名直接相连(无空格):
from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC # 显式等待元素可见,最长等待10秒 wait = WebDriverWait(driver, 10) issue_description = wait.until(EC.visibility_of_element_located( (By.CSS_SELECTOR, '.git-issue-description.markdown-body') )).text
方案2:使用XPATH定位
通过contains匹配元素的class属性同时包含两个目标类名:
issue_description = wait.until(EC.visibility_of_element_located( (By.XPATH, '//div[contains(@class,"git-issue-description") and contains(@class,"markdown-body")]') )).text
补充说明
添加显式等待是为了避免页面未完全加载时就尝试获取元素,这也是导致文本空白的常见原因之一。如果直接定位仍然失败,可以检查是否需要处理登录状态(部分Gitee内容需要登录才能查看)。
内容的提问来源于stack exchange,提问作者Mano Haran
相关产品推荐
相关产品推荐

