如何逐步在Python Selenium中向下滚动

嗨,大家好,我是Selenium和Python的新手。我只是在抓取站点pagalguy网站。我知道如何向下滚动到页面底部,但是我需要逐步向下滚动,以便Selenium单击所有readmore按钮,但是我不知道如何逐步向下滚动,因此我像下面的一个一样硬编码

browser.execute_script("window.scrollTo(0,300);")

browser.find_element_by_link_text("Read More...").click()

browser.execute_script("window.scrollTo(300,600);")

browser.find_element_by_link_text("Read More...").click()

browser.execute_script("window.scrollTo(600,900);")

browser.find_element_by_link_text("Read More...").click()

browser.execute_script("window.scrollTo(900,1200);")

browser.find_element_by_link_text("Read More...").click()

browser.execute_script("window.scrollTo(1200,1500);")

browser.find_element_by_link_text("Read More...").click()

browser.execute_script("window.scrollTo(1500,1800);")

browser.find_element_by_link_text("Read More...").click()

browser.execute_script("window.scrollTo(1800,2100);")

browser.find_element_by_link_text("Read More...").click()

browser.execute_script("window.scrollTo(2100,2500);")

browser.find_element_by_link_text("Read More...").click()

it goes on .......

我尝试使用while循环将其自动化,但它导致错误,上面的一个可行,但是我希望它简短并循环,以便可以将其用于具有不同页面长度的所有其他页面。

initial_value = 0

next_value = 300

while next_value<300000:

browser.execute_script("window.scrollTo(initial_value,next_value);")

browser.find_element_by_link_text("Read More...").click()

initial_value=next_value

next_value+=300

JavascriptException:消息:ReferenceError:没有定义initial_value

但是我已经定义了值,我想我已经解释了我实际上要做什么,我想自动向下滚动并单击所有readmore按钮,然后将获得全文内容

回答:

同意@Rahul Chawla的回答。

但是增加了一项更改。你可以试试这个

driver = webdriver.Chrome()

read_mores = driver.find_elements_by_xpath('//a[text()="Read More..."]')

for read_more in read_mores:

driver.execute_script("arguments[0].scrollIntoView();", read_more)

driver.execute_script("$(arguments[0]).click();", read_more)

以上是 如何逐步在Python Selenium中向下滚动 的全部内容, 来源链接: utcz.com/qa/420660.html

回到顶部