python中selenium关于滚动条的循环下拉滚动操作---滚动条操作

 
# -*- coding: utf-8 -*-
# @Time    : 2018/6/19 10:54
# @Author  : 清心
def xh():
   t = True
   time.sleep(1)
   while t:
      driver.execute_script("window.scrollBy(0,1000)")
      try:
         driver.find_element('link_text', '没有更多推荐了,返回首页').click()
         time.sleep(1)
         t = False
      except:
         xh()


if __name__ == '__main__':
   driver = webdriver.Chrome()
   driver.get("https://blog.csdn.net/sily_z/article/details/80733267")
   xh()
 #这个条件是决定你是否继续下滑的条件,如果找到你想要的元素,那么就会跳出循环,不在下滑,否则会一直下滑。
 driver.find_element('link_text', '没有更多推荐了,返回首页').click()

 

 上面这些是我对于循环操作滚动条的操作,原来我页搜索过,但是没有发现直接给一个参考,都是举得例子,我现在就把具体的代码都写出来了,其实实现很简单,就是定义一个方法,判断一下你要寻找的元素对象,元素对象查找不到报异常,再重新操作滚动条。大概是这样,希望对大家有帮助。

 

T:

1.我用的谷歌浏览器,需要自己下载谷歌浏览器,下载驱动,如果使用其他浏览器,请修改浏览器类型

2.

window.scrollBy(0,100) 

这个方法是从当前位置向下滚动100像素,而  window.scrollTo(0,100) 这个方法是从0滚动到100像素,这两个方法都是滚动操作,但是后面这个只会从0像素滚动到100像素,除非修改数值才可以滚动到对应像素位置,而我使用的则会一直向下滚动,希望不要弄混淆了。

 

3.当然,还有一种方法就是鼠标移动到目标元素上方的操作了。

    

from selenium.webdriver.common.action_chains import ActionChains

ActionChains(self.driver).move_to_element(element).perform()
# 将鼠标移动到目标元素上方,适用于当前页面元素已加载完毕,但是在屏幕中看不到的情况。

 

 

 

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: 使用PythonSelenium可以通过以下步骤下拉滚动条: 1. 导入Selenium库和WebDriver 2. 打开网页 3. 使用JavaScript代码滚动滚动条 4. 等待页面加载完成 具体代码如下: ```python from selenium import webdriver import time # 打开浏览器 driver = webdriver.Chrome() # 打开网页 driver.get("https://www.example.com") # 模拟滚动条下拉 driver.execute_script("window.scrollTo(, document.body.scrollHeight);") # 等待页面加载完成 time.sleep(5) # 关闭浏览器 driver.quit() ``` 其,`execute_script()`方法可以执行JavaScript代码,`window.scrollTo(, document.body.scrollHeight);`表示将滚动条滚动到页面底部,`time.sleep(5)`表示等待5秒钟,以确保页面加载完成。 ### 回答2: Pythonselenium是一个自动化测试框架,可以使用它来模拟用户在浏览器操作。其下拉滚动条是一个常见的操作,实现这个过程可以通过下面的几个步骤: 1. 导入selenium模块并启动浏览器: ```python from selenium import webdriver browser = webdriver.Chrome() # 以Chrome浏览器为例 ``` 2. 打开网页,并通过js代码来获取页面的高度: ```python browser.get(url) # url是你要操作的页面 scroll_height = browser.execute_script('return document.body.scrollHeight') # 获取页面高度 ``` 3. 循环滚动屏幕:可以通过循环不断地执行js代码来实现滚动屏幕的效果。例如,下面的代码可以实现每次滚动一定的距离,并控制滚动的次数。 ```python scroll_distance = 500 # 每次滚动的像素距离 scroll_times = int(scroll_height/scroll_distance) # 滚动的次数 for i in range(scroll_times): js = 'window.scrollTo(0, document.body.scrollHeight/{}*{})'.format(scroll_times, i+1) # 计算滚动距离 browser.execute_script(js) # 执行js代码 time.sleep(1) # 滚动后等待一段时间,让页面加载完成 ``` 这样,就可以利用pythonselenium完成下拉滚动条操作了。需要注意的是,在实际操作,还需要考虑到网页可能存在一些异步加载的内容,例如图片、视频等,可能需要一定的等待时间来等待页面加载完成。 ### 回答3: Python是一种非常流行的编程语言,提供了各种各样的库和框架,包括SeleniumSelenium是一个用于Web应用程序自动化测试的开源工具,它可以自动化浏览器的工作,模拟用户的操作。在Selenium下拉滚动条是一个常见的任务,本文将介绍如何在Python使用Selenium下拉滚动条。 在Python,我们需要安装Selenium库,我们可以使用pip工具来安装它。仅需要使用以下命令即可安装: ``` pip install selenium ``` 在安装好Selenium库之后,我们需要获得一个WebDriver对象。WebDriver是Selenium库用于控制网页浏览器的工具,它可以用于模拟人的操作,例如单击按钮,填写表单和下拉滚动条,在Python我们可以使用以下代码来创建一个Chrome浏览器的WebDriver对象: ``` from selenium import webdriver driver = webdriver.Chrome() ``` 现在,我们已经获得了WebDriver对象,接下来,我们可以使用它来访问一个网站并执行下拉滚动条操作。假设我们要访问百度首页,并将滚动条下拉到页面的底部,我们可以使用以下代码: ``` driver.get("http://www.baidu.com") driver.execute_script("window.scrollTo(0, document.body.scrollHeight);") ``` 在这段代码,我们首先使用get方法来打开百度首页,然后使用execute_script方法来执行JavaScript代码,其我们将滚动条向下滚动到页面的底部。代码的window.scrollTo(0, document.body.scrollHeight)将滚动条的位置设置为文档的底部,scrollTo方法是JavaScript方法,它可以用于控制滚动条的位置。 除了将滚动条下拉到页面底部之外,我们还可以将滚动条向上滚动到页面顶部,方法是将document.body.scrollHeight替换为0,如下所示: ``` driver.execute_script("window.scrollTo(0, 0);") ``` 在Selenium,我们可以使用其他方法来控制滚动条,例如scrollBy方法可以控制滚动条滚动的距离,如下所示: ``` driver.execute_script("window.scrollBy(0, 100);") ``` 在这段代码,我们将滚动条向下滚动100个像素,如果要向上滚动,将100替换为-100即可。 总之,在Python使用Selenium下拉滚动条是一个非常简单的任务,只需要使用execute_script方法并提供相应的JavaScript代码即可实现。PythonSelenium的结合使得我们可以非常方便地自动化Web应用程序,从而节省时间和精力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值