如何使用Selenium和Python按关键词过滤获取指定元素的链接
过滤含Downloads关键词链接的两种实现方案
方案1:XPath定位阶段直接过滤
直接在XPath规则中添加href属性包含Downloads的匹配条件,一步定位到符合要求的a元素,无需后续二次判断,执行效率更高:
for a in driver.find_elements_by_xpath('.//span[contains(text(), "SPE8ED-21-Q-1288")]/a[contains(@href, "Downloads")]'): print(a.get_attribute('href'))
方案2:Python循环阶段过滤
先拿到所有匹配的a元素,再在循环中对href属性做判断,容错性更强,可避免因部分a标签无href属性导致的异常:
for a in driver.find_elements_by_xpath('.//span[contains(text(), "SPE8ED-21-Q-1288")]/a'): href = a.get_attribute('href') # 先判断href非空再做关键词匹配 if href and 'Downloads' in href: print(href)
两种方案均可实现需求,若能确定所有匹配到的a标签都有合法的href属性,优先选择方案1,否则建议用方案2做兼容处理。
内容的提问来源于stack exchange,提问作者Rikky Bhai
相关产品推荐
相关产品推荐

