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 相关文章推荐
Pyhton中防止SQL注入的方法
Feb 05 Python
Python递归遍历列表及输出的实现方法
May 19 Python
对于Python装饰器使用的一些建议
Jun 03 Python
Django学习教程之静态文件的调用详解
May 08 Python
python format 格式化输出方法
Jul 16 Python
为什么Python中没有"a++"这种写法
Nov 27 Python
python实现猜数字游戏
Mar 25 Python
Pytorch实现LSTM和GRU示例
Jan 14 Python
python实现猜数游戏
Mar 27 Python
浅谈keras中自定义二分类任务评价指标metrics的方法以及代码
Jun 11 Python
有趣的二维码:使用MyQR和qrcode来制作二维码
May 10 Python
Python数据分析入门之数据读取与存储
May 13 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 Squid中可缓存的动态网页设计
2008/09/17 PHP
探讨PHP中this,self,parent的区别详解
2013/06/08 PHP
PHP回溯法解决0-1背包问题实例分析
2015/03/23 PHP
PHP实现Unicode编码相互转换的方法示例
2020/11/17 PHP
PHP实现网站应用微信登录功能详解
2019/04/11 PHP
JS中==与===操作符的比较
2009/03/21 Javascript
Jquery 自定义动画概述及示例
2013/03/29 Javascript
javascript从右边截取指定字符串的三种实现方法
2013/11/29 Javascript
Javascript URI 解析介绍
2015/03/15 Javascript
js实现简单的可切换选项卡效果
2015/04/10 Javascript
JS实现统计复选框选中个数并提示确定与取消的方法
2015/07/01 Javascript
jQuery如何封装输入框插件
2016/08/19 Javascript
Javascript将字符串日期格式化为yyyy-mm-dd的方法
2016/10/27 Javascript
Angular.Js的自动化测试详解
2016/12/09 Javascript
jquery UI Datepicker时间控件冲突问题解决
2016/12/16 Javascript
尝试自己动手用react来写一个分页组件(小结)
2018/02/09 Javascript
js遍历添加栏目类添加css 再点击其它删除css【推荐】
2018/06/12 Javascript
js实现文件上传功能 后台使用MultipartFile
2018/09/08 Javascript
微信公众号生成新浪短网址的实现(快速生成)
2019/08/18 Javascript
Python多线程编程(六):可重入锁RLock
2015/04/05 Python
django请求返回不同的类型图片json,xml,html的实例
2018/05/22 Python
python使用RNN实现文本分类
2018/05/24 Python
python3.4实现邮件发送功能
2018/05/28 Python
Python正则表达式指南 推荐
2018/10/09 Python
在Django中实现添加user到group并查看
2019/11/18 Python
python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配
2020/02/29 Python
Python自动化操作实现图例绘制
2020/07/09 Python
如何利用python读取micaps文件详解
2020/10/18 Python
Anaconda的安装与虚拟环境建立
2020/11/18 Python
浅谈html5 响应式布局
2014/12/24 HTML / CSS
2014小学植树节活动总结
2014/03/10 职场文书
宣传口号大全
2014/06/16 职场文书
庆六一活动总结
2014/08/29 职场文书
Node.js实现断点续传
2021/06/23 Javascript
MySQL分区表管理命令汇总
2022/03/21 MySQL
Python几种酷炫的进度条的方式
2022/04/11 Python