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

2024-04-24 11:19:59 发布

您现在位置:Python中文网/ 问答频道 /正文

关于this问题,我想知道是否有办法等待页面自动滚动完成?在

问题是,当您第一次单击分页时的“下一步”("Volgende")按钮(URLhttps://www.iens.nl/restaurant+utrecht)时,webdriver会将您重定向到下一页并自动向上滚动到页面顶部。所以如果要执行

WebDriverWait(driver, 5).until(EC.element_to_be_clickable((By.LINK_TEXT, 'Volgende'))) 同样,在重定向之后,webdriver将找到按钮,但当焦点向上移动大约一秒钟时,请单击其他元素。在

目前,要想一直单击“下一步”按钮直到到达最后一页,唯一的解决方案是使用time.sleep

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

但这显然不是最好的主意。。。在

另外,我想知道是否有可能禁用页面自动滚动功能。在Firefoxabout:config中,将general.autoScroll转换为False没有任何效果


Tags: tobydriver页面elementbe按钮重定向
1条回答
网友
1楼 · 发布于 2024-04-24 11:19:59

html包含带有标记<main>的元素,该元素在页面未向上滚动时接收属性style。我建议您等到标记不具有此属性

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

相关问题 更多 >