如何通过rel属性使用Python Selenium实现分页下一页跳转?
报错原因排查
- XPath语法错误:你编写的定位路径
//div[@class='pagination_hi']/[rel='next']存在语法问题,/后直接跟属性过滤条件,未指定需要匹配的子元素标签。实际rel="next"属性挂载在class为pagination_hi的div下的a标签上,原有路径完全无法匹配到目标元素。 - 匹配范围问题:页面中存在两个class为
pagination_hi的div,第一个div为上一页容器,内部没有带rel="next"属性的元素,原有写法未明确子元素类型,就算语法修正也可能匹配到空值。
正确实现方案
基础修正版
直接修正XPath语法,明确指定子元素为a标签即可:
browser.find_element_by_xpath("//div[@class='pagination_hi']/a[@rel='next']").click()
稳定性优化版
如果存在页面渲染延迟的情况,建议增加显式等待逻辑,避免元素未加载完成就执行点击操作触发报错:
from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC # 最长等待10秒,直到下一页按钮处于可点击状态 next_btn = WebDriverWait(browser, 10).until( EC.element_to_be_clickable((By.XPATH, "//div[@class='pagination_hi']/a[@rel='next']")) ) next_btn.click()
内容的提问来源于stack exchange,提问作者lesliemak
相关产品推荐
相关产品推荐

