Selenium提取Gitee变更文件时Python列表非空却显示为空的问题
解决方法
问题根源
你的XPath匹配到了3个<a>元素,其中前两个的text()是空字符串。对空字符串执行split(' ')会得到['']这个非空列表,所以原判断if not temp:无法过滤这些无效项。
修正方案
方案1:在XPath层面直接过滤空文本链接
修改元素定位的XPath,只匹配有非空文本的<a>标签:
files_changed = driver.find_elements(By.XPATH, '//*[@class = "header file-header clearfix file-header-sticky"]//a[normalize-space(text()) != ""]')
normalize-space()会去掉文本前后的空白字符,确保不会误判仅含空格的文本。
方案2:调整代码内的空值判断逻辑
如果不想修改XPath,可在代码中直接检查元素文本是否有效:
files_changed = driver.find_elements(By.XPATH, '//*[@class = "header file-header clearfix file-header-sticky"]//a') files = [] filecount = 1 for z in files_changed: file_text = z.text.strip() if not file_text: print("A Blank File") filecount += 1 else: print("This is the temp value:", [file_text]) files.append([filecount, file_text]) print("List of files changed:", files) filecount += 1 temp_issue['files_changed'] = files
效果说明
两种方案都能过滤掉空文本的无效链接,最终只获取到目标文件路径,输出符合期望。
内容的提问来源于stack exchange,提问作者Mano Haran
相关产品推荐
相关产品推荐

