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抓取网页正文的源码
Jun 11 Python
实例说明Python中比较运算符的使用
May 13 Python
Python正则表达式完全指南
May 25 Python
django反向解析URL和URL命名空间的方法
Jun 05 Python
python matlibplot绘制3D图形
Jul 02 Python
pygame游戏之旅 游戏中添加显示文字
Nov 20 Python
django 捕获异常和日志系统过程详解
Jul 18 Python
python读文件的步骤
Oct 08 Python
python修改linux中文件(文件夹)的权限属性操作
Mar 05 Python
安装多个版本的TensorFlow的方法步骤
Apr 21 Python
浅谈多卡服务器下隐藏部分 GPU 和 TensorFlow 的显存使用设置
Jun 30 Python
python 用递归实现通用爬虫解析器
Apr 16 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
php远程下载类分享
2016/04/13 PHP
PHP运行模式汇总
2016/11/06 PHP
Yaf框架封装的MySQL数据库操作示例
2019/03/06 PHP
使用Zookeeper分布式部署PHP应用程序
2019/03/15 PHP
PHP Redis扩展无法加载的问题解决方法
2019/08/22 PHP
HR vs ForZe BO3 第一场 2.13
2021/03/10 DOTA
给Javascript数组插入一条记录的代码
2007/08/30 Javascript
jquery实现公告翻滚效果
2015/02/27 Javascript
PHP+jQuery实现随意拖动层并即时保存拖动位置
2015/04/30 Javascript
javascript中使用new与不使用实例化对象的区别
2015/06/22 Javascript
基于jQuery实现的无刷新表格分页实例
2016/02/17 Javascript
Boostrap模态窗口的学习小结
2016/03/28 Javascript
Bootstrap菜单按钮及导航实例解析
2016/09/09 Javascript
详解bootstrap的modal-remote两种加载方式【强化】
2017/01/27 Javascript
jQuery EasyUI 组件加上“清除”功能实例详解
2017/04/11 jQuery
基于VuePress 轻量级静态网站生成器的实现方法
2018/04/17 Javascript
angularJs中$http获取后台数据的实例讲解
2018/08/08 Javascript
超详细的5个Shell脚本实例分享(值得收藏)
2019/08/15 Javascript
vue select 获取value和lable操作
2020/08/28 Javascript
[01:08]2014DOTA2展望TI 剑指西雅图LGD战队专访
2014/06/30 DOTA
Python 正则表达式操作指南
2009/05/04 Python
python GUI实例学习
2017/11/21 Python
python爬虫 execjs安装配置及使用
2019/07/30 Python
Django密码存储策略分析
2020/01/09 Python
如何在 Django 模板中输出 "{{"
2020/01/24 Python
Python通过2种方法输出带颜色字体
2020/03/02 Python
python 装饰器的使用示例
2020/10/10 Python
20年同学聚会邀请函
2014/02/04 职场文书
黄河的主人教学反思
2014/02/07 职场文书
客服专员岗位职责
2014/02/28 职场文书
机关作风建设剖析材料
2014/10/11 职场文书
计划生育目标责任书
2015/05/09 职场文书
HTML+VUE分页实现炫酷物联网大屏功能
2021/05/27 Vue.js
Redis高并发防止秒杀超卖实战源码解决方案
2021/11/01 Redis
Mysql开启外网访问
2022/05/15 MySQL
Android studio 简单计算器的编写
2022/05/20 Java/Android