如何通过指定XPath定位所有匹配元素而非仅第一个?
获取所有匹配XPath的元素解决方案
核心修改是把find_element替换为复数形式的find_elements,这个方法会返回页面中所有符合XPath规则的元素列表,而非仅第一个匹配元素。
修改后的代码:
XPATH = "//*[contains(@id, 'id__')]/div[3]/div/div" elems = driver.find_elements("xpath", XPATH)
拿到元素列表后,你可以遍历处理每个元素:
# 遍历所有匹配元素 for elem in elems: # 示例:获取元素文本内容 print(elem.text) # 也可以执行点击、输入等操作 # elem.click()
注意:find_elements在没有匹配到任何元素时会返回空列表,不会抛出NoSuchElementException,所以使用前可以先判断列表是否为空:
if elems: print(f"找到{len(elems)}个匹配元素") else: print("未找到任何匹配元素")
内容的提问来源于stack exchange,提问作者8772
相关产品推荐
相关产品推荐

