当前位置: 首页 > 面试题库 >

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

谷梁嘉运
2023-03-14
问题内容

嗨,大家好,我是Selenium和Python的新手。我只是在抓取站点pagalguyhtml" target="_blank">网站。我知道如何向下滚动到页面底部,但是我需要逐步向下滚动,以便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)


 类似资料:
  • 问题内容: 我对Linkedin中技能部分的“加载更多”按钮感到困惑。我 在找到按钮的xpath时收到此错误: 问题是我的元素在页面上不可见,因此我一直试图 找到一种方法来在页面上连续滚动直到按钮可见。 我正在尝试对多个配置文件进行forloop。 我的相关代码: Attempts 1. 随着 页面滚动就在元件的下方,因此该元素不再是可见的,随后发生同样的错误。 我也尝试过move_to_elem

  • 问题内容: 我想向下滚动我的网页,即时通讯使用此代码滚动页面,但无法正常工作 寻求帮助 问题答案: 尝试使用下面的简单Java脚本,您可以滚动页面。

  • 如何在到达特定的时仅禁用向下滚动?

  • 我正在工作一个Linkedin网页刮痧项目。我正在尝试获得感兴趣的公司列表(注意,我没有使用API)。这是一个动态的网站,所以我需要滚动,而刮公司的名字。我知道如何在主窗口中这样做,但由于兴趣是一个弹出窗口,这种滚动解决方案不起作用。到目前为止我的代码是:

  • 当在div之后向下滚动导航条时,导航条会得到一个新的背景颜色(导航条应该固定在顶部,我在引导中使用)。 我尝试过一些教程,但没有成功。 我有两个菜单和。当我打开浏览器时,我想显示。当我向下滚动时,不显示。显示。 html 剧本

  • 我有一个应用程序页面,我需要垂直滚动,以达到应用程序的底部保存按钮。 我正在尝试下面的代码,但得到服务器端错误。 有什么好方法可以在android中实现滚动功能吗?