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 相关文章推荐
wxPython学习之主框架实例
Sep 28 Python
详解Django框架中的视图级缓存
Jul 23 Python
python获取外网IP并发邮件的实现方法
Oct 01 Python
对python 各种删除文件失败的处理方式分享
Apr 24 Python
Python获取指定字符前面的所有字符方法
May 02 Python
python绘制中国大陆人口热力图
Nov 07 Python
详解pyppeteer(python版puppeteer)基本使用
Jun 12 Python
python基于gevent实现并发下载器代码实例
Nov 01 Python
python在不同条件下的输入与输出
Feb 13 Python
keras读取h5文件load_weights、load代码操作
Jun 12 Python
Python 如何实现文件自动去重
Jun 02 Python
python lambda 表达式形式分析
Apr 03 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
打造计数器DIY三步曲(中)
2006/10/09 PHP
linux系统下php安装mbstring扩展的二种方法
2014/01/20 PHP
php实现数组按指定KEY排序的方法
2015/03/30 PHP
完美解决phpexcel导出到xls文件出现乱码的问题
2016/10/29 PHP
PHP get_html_translation_table()函数用法讲解
2019/02/16 PHP
thinkPHP+mysql+ajax实现的仿百度一下即时搜索效果详解
2019/07/15 PHP
项目实践之javascript技巧
2007/12/06 Javascript
自制轻量级仿jQuery.boxy对话框插件代码
2010/10/26 Javascript
Jquery节点遍历next与nextAll方法使用示例
2014/07/22 Javascript
jQuery实现文章图片弹出放大效果
2017/04/06 jQuery
快速理解 JavaScript 中的 LHS 和 RHS 查询的用法
2017/08/24 Javascript
JS实现的哈夫曼编码示例【原始版与修改版】
2018/04/22 Javascript
layer弹出的iframe层在执行完毕后关闭当前弹出层的方法
2018/08/17 Javascript
Vue实现购物小球抛物线的方法实例
2020/11/22 Vue.js
Python学习笔记之常用函数及说明
2014/05/23 Python
python中使用enumerate函数遍历元素实例
2014/06/16 Python
Python多线程编程简单介绍
2015/04/13 Python
Python函数式编程指南(一):函数式编程概述
2015/06/24 Python
深入理解python对json的操作总结
2017/01/05 Python
python利用rsa库做公钥解密的方法教程
2017/12/10 Python
python实现linux下抓包并存库功能
2018/07/18 Python
Numpy之将矩阵拉成向量的实例
2019/11/30 Python
canvas环形倒计时组件的示例代码
2018/06/14 HTML / CSS
new修饰符是起什么作用
2015/06/28 面试题
银行演讲稿范文
2014/01/03 职场文书
幼儿园教学随笔感言
2014/02/23 职场文书
团日活动总结范文
2014/04/25 职场文书
大一工商管理职业生涯规划:有梦最美,行动相随
2014/09/18 职场文书
2014乡镇机关党员个人对照检查材料思想汇报
2014/10/09 职场文书
企业三严三实学习心得体会
2014/10/13 职场文书
2019年入党思想汇报格式与要求
2019/06/25 职场文书
使用react+redux实现计数器功能及遇到问题
2021/06/02 Javascript
IDEA使用SpringAssistant插件创建SpringCloud项目
2021/06/23 Java/Android
实现AJAX异步调用和局部刷新的基本步骤
2022/03/17 Javascript
Win10 heic文件怎么打开 ? Win10 heic文件打开教程
2022/04/06 数码科技
Redis sentinel哨兵集群的实现步骤
2022/07/15 Redis