Python 如何等待页面自动滚动完成

Python 如何等待页面自动滚动完成,python,selenium,selenium-webdriver,autoscroll,Python,Selenium,Selenium Webdriver,Autoscroll,关于这个问题,我想知道是否有办法等到页面自动滚动完成 问题是,当您第一次单击分页(URLis)上的“下一步”(“Volgende”)按钮时,webdriver会将您重定向到下一页并自动向上滚动到页面顶部。那么如果要执行 WebDriverWait(driver,5).直到(EC.element可点击((By.LINK\u TEXT,'Volgende')) 同样,在重定向之后,webdriver将找到按钮,但当焦点向上移动大约一秒钟时,单击其他元素 目前,在到达最后一页之前一直单击“下一步”按钮

关于这个问题,我想知道是否有办法等到页面自动滚动完成

问题是,当您第一次单击分页(
URL
is)上的“下一步”(
“Volgende”
)按钮时,
webdriver
会将您重定向到下一页并自动向上滚动到页面顶部。那么如果要执行

WebDriverWait(driver,5).直到(EC.element可点击((By.LINK\u TEXT,'Volgende'))
同样,在重定向之后,
webdriver
将找到按钮,但当焦点向上移动大约一秒钟时,单击其他元素

目前,在到达最后一页之前一直单击“下一步”按钮的唯一解决方案是使用
时间。睡眠

while True:
    try:
        click_icon = WebDriverWait(driver, 5).until(EC.element_to_be_clickable((By.LINK_TEXT, 'Volgende')))
        click_icon.click()
        time.sleep(2)  # to wait until page scrolled
    except:
        break
但这显然不是最好的主意


另外,我想知道是否有可能禁用页面自动滚动功能。在
Firefox
about:config
中将
general.autoScroll
切换为
False
不会产生任何效果

当页面没有一直向上滚动时,html包含带有标记
的元素,该元素接收属性
样式
。我建议您等到标签没有此属性时再使用

WebDriverWait(driver, 5).until(EC.presence_of_element_located((By.CSS_SELECTOR, 'main:not([style*="margin-top"])')))