Selenium 滚动页面至元素可见的方法


Posted in Python onMarch 18, 2020

滚动页面

在自动化操作中,如果web页面过长,而我们需要的元素并不在当前可视页面中,那么selenium就无法对其进行操作;此时,我们就需要像平时操作浏览器一样来滚动页面,使我们需要操作的对象可见!

滚动页面的方法:

window.scrollBy()

  • window.scrollBy(0,500)

       向下滚动500个像素

  • window.scrollBy(0,-500)

    向上滚动500个像素

  • window.scrollBy(500,0)

       向右滚动500个像素

  • window.scrollBy(-500,0)

    向左滚动500个像素

使用方式:

  • 在 开发者工具--Console中输入以上内容,即可实现页面滚动
  • 示例:window.scrollBy(0,500)

      向下滚动500个像素

Selenium中实现滚动页面

  • driver.execute_script('window.scrollBy()')
  • driver.execute_script("arguments[0].scrollIntoView();", ele)

    滚动至元素ele可见

 代码示例:

from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.implicitly_wait(10)
# 设置窗口大小
driver.set_window_size(800, 700)

driver.get('http://baidu.com')

# 百度输入框输入 selelnium python 回车
driver.find_element_by_id("kw").send_keys("selenium python\n")

time.sleep(2)
# 向下滚动200个像素
driver.execute_script('window.scrollBy(0,200)')

time.sleep(2)
# 滚动至元素ele可见位置
eles = driver.find_elements_by_css_selector('#rs table tr th a')
ele = eles[0]
driver.execute_script("arguments[0].scrollIntoView();",ele)

time.sleep(2)
# 向右滚动200个像素
driver.execute_script('window.scrollBy(200,0)')

time.sleep(2)
driver.quit()

到此这篇关于Selenium 滚动页面至元素可见的文章就介绍到这了,更多相关Selenium 滚动页面 内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python操作摄像头截图实现远程监控的例子
Mar 25 Python
跟老齐学Python之开始真正编程
Sep 12 Python
在Django框架中伪造捕捉到的URLconf值的方法
Jul 18 Python
利用Python实现命令行版的火车票查看器
Aug 05 Python
python命令行解析之parse_known_args()函数和parse_args()使用区别介绍
Jan 24 Python
简单的python协同过滤程序实例代码
Jan 31 Python
Selenium控制浏览器常见操作示例
Aug 13 Python
python安装twisted的问题解析
Aug 21 Python
Python中的pathlib.Path为什么不继承str详解
Jun 23 Python
Python3中的最大整数和最大浮点数实例
Jul 09 Python
Django自带的用户验证系统实现
Dec 18 Python
FP-growth算法发现频繁项集——构建FP树
Jun 24 Python
python字符串判断密码强弱
Mar 18 #Python
详解Python3中的 input() 函数
Mar 18 #Python
Python通过socketserver处理多个链接
Mar 18 #Python
python实现密码强度校验
Mar 18 #Python
Python tcp传输代码实例解析
Mar 18 #Python
python实现用户名密码校验
Mar 18 #Python
Python3+selenium实现cookie免密登录的示例代码
Mar 18 #Python
You might like
桌面中心(二)数据库写入
2006/10/09 PHP
PHP中执行MYSQL事务解决数据写入不完整等情况
2014/01/07 PHP
PHP面向对象程序设计之类常量用法实例
2014/08/20 PHP
php中实现可以返回多个值的函数实例
2015/03/21 PHP
PHP实现无限极分类的两种方式示例【递归和引用方式】
2019/03/25 PHP
laravel框架模型和数据库基础操作实例详解
2020/01/25 PHP
PHP实现计算器小功能
2020/08/28 PHP
jQuery+ajax实现顶一下,踩一下效果
2010/07/17 Javascript
用IE重起计算机或者关机的示例代码
2014/03/10 Javascript
javascript框架设计读书笔记之数组的扩展与修复
2014/12/02 Javascript
JavaScript数组对象实现增加一个返回随机元素的方法
2015/07/27 Javascript
深入理解JavaScript中的箭头函数
2015/07/28 Javascript
基于Jquery实现表单验证
2020/07/20 Javascript
js图片轮播特效代码分享
2015/09/07 Javascript
EasyUI创建对话框的两种方式
2016/08/23 Javascript
浅谈js对象属性 通过点(.) 和方括号([]) 的不同之处
2016/10/29 Javascript
bootstrap table实现单击单元格可编辑功能
2017/03/28 Javascript
详细讲解vue2+vuex+axios
2017/05/27 Javascript
JavaScript中附件预览功能实现详解(推荐)
2017/08/15 Javascript
vue+echarts实现动态绘制图表及异步加载数据的方法
2018/10/17 Javascript
Angular父子组件通过服务传参的示例方法
2018/10/31 Javascript
详解vue组件中使用路由方法
2019/02/12 Javascript
jQuery实现容器间的元素拖拽功能
2020/12/01 jQuery
[01:00]一分钟回顾2018DOTA2亚洲邀请赛现场活动
2018/04/07 DOTA
[26:52]LGD vs EG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
详解Python中的日志模块logging
2015/06/19 Python
在python中按照特定顺序访问字典的方法详解
2018/12/14 Python
Django 日志配置按日期滚动的方法
2019/01/31 Python
Flask和pyecharts实现动态数据可视化
2020/02/26 Python
Matplotlib 绘制饼图解决文字重叠的方法
2020/07/24 Python
Python grequests模块使用场景及代码实例
2020/08/10 Python
filter使用python3代码进行迭代元素的实例详解
2020/12/03 Python
护理专科毕业自荐信范文
2014/04/21 职场文书
解除劳动合同协议书范本2014
2014/09/25 职场文书
违反工作规定检讨书范文
2014/12/14 职场文书
毕业生登记表班级意见
2015/06/05 职场文书