我想知道硒棒python中滚动条的结尾

问题描述 投票:1回答:1

我正在用硒编写一个while循环,并希望对while循环进行条件处理,因此,当滚动条滚动结束时,while循环应停止。我该如何在While循环中编码这种类型的条件?我正在使用Keys.DOWN,而我的while循环现在设置为True

我的while循环代码:

    while True:
        self.driver.find_element_by_id('pane-side').send_keys(Keys.DOWN * 5)
        self.driver.find_elements_by_xpath("//div[@class='_2wP_Y']")
python python-3.x selenium web-scraping selenium-firefoxdriver
1个回答
0
投票

如果要在while循环中滚动,可以检查使用send_keys(Keys.DOWN * 5)后的页面Y偏移是否已更改

from time import sleep

# Offset can not be smaller then 0
# we just want to ensure that we will try to scroll down at least once
previous_offset = -1

# current_offset (most probably 0)
current_offset = self.driver.execute_script('return window.pageYOffset;')

while previous_offset!=current_offset:
    previous_offset = current_offset
    self.driver.find_element_by_id('pane-side').send_keys(Keys.DOWN * 5)

    # Give a browser some small time to react
    sleep(0.1)
    current_offset = driver.execute_script('return window.pageYOffset;')

如果您不需要使用循环并向下滚动至页面末尾,则可以执行此操作

self.driver.execute_script('window.scrollTo(0,document.body.scrollHeight);')
© www.soinside.com 2019 - 2024. All rights reserved.