selenium并不是万能的,有时候页面上操作无法实现的,这时候就需要借助JS来完成了。

  当页面上的元素超过一屏后,想操作屏幕下方的元素,是不能直接定位到,会报元素不可见的。这时候需要借助滚动条来拖动屏幕,使被操作的元素显示在当前的屏幕上。滚动条是无法直接用定位工具来定位的。selenium里面也没有直接的方法去控制滚动条,这时候只能借助J了,还好selenium提供了一个操作js的方法:execute_script(),可以直接执行js的脚本。

  一、控制滚动条高度

  1.滚动条回到顶部:

    js="var q=document.getElementById('id').scrollTop=0"
    driver.execute_script(js) 
  2.滚动条拉到底部

    js="var q=document.documentElement.scrollTop=10000"
    driver.execute_script(js)

    可以修改scrollTop 的值,来定位右侧滚动条的位置,0是最上面,10000是最底部。

    以上方法在Firefox和IE浏览器上上是可以的,但是用Chrome浏览器,发现不管用。Chrome浏览器解决办法:

    js = "var q=document.body.scrollTop=0"
    driver.execute_script(js)

  二、横向滚动条
    1.有时候浏览器页面需要左右滚动(一般屏幕最大化后,左右滚动的情况已经很少见了)。
    2.通过左边控制横向和纵向滚动条scrollTo(x, y)js = "window.scrollTo(100,400);"

    driver.execute_script(js)

  三、元素聚焦

    虽然用上面的方法可以解决拖动滚动条的位置问题,但是有时候无法确定我需要操作的元素在什么位置,有可能每次打开的页面不一样,元素所在的位置也不一样,怎么办呢?这个时候我们可以先让页面直接跳到元素出现的位置,然后就可以操作了。

    同样需要借助JS去实现。 具体如下:

    target = driver.find_element_by_xxxx()
    driver.execute_script("arguments[0].scrollIntoView();", target)

  四、参考代码

  

  例如定位id =J_ItemList的元素

  

转载于:https://www.cnblogs.com/shaosks/p/6611248.html

[Python爬虫] 之五:Selenium 处理滚动条相关推荐

  1. python 模拟浏览器selenium_浅谈python爬虫使用Selenium模拟浏览器行为

    前几天有位微信读者问我一个爬虫的问题,就是在爬去百度贴吧首页的热门动态下面的图片的时候,爬取的图片总是爬取不完整,比首页看到的少.原因他也大概分析了下,就是后面的图片是动态加载的.他的问题就是这部分动 ...

  2. Python爬虫之selenium库使用详解

    Python爬虫之selenium库使用详解 本章内容如下: 什么是Selenium selenium基本使用 声明浏览器对象 访问页面 查找元素 多个元素查找 元素交互操作 交互动作 执行JavaS ...

  3. python爬虫之selenium,谷歌无头浏览器

    python爬虫之selenium和PhantomJS 主要的内容 lenium hantomjs 无头浏览器 的懒加载 一 什么是selenium? 介绍 它是python中的一个第三方库,对外提供 ...

  4. Python爬虫之selenium高级功能

    Python爬虫之selenium高级功能 原文地址 表单操作 元素拖拽 页面切换 弹窗处理 表单操作 表单里面会有文本框.密码框.下拉框.登陆框等. 这些涉及与页面的交互,比如输入.删除.点击等. ...

  5. 从入门到入土:Python爬虫学习|Selenium自动化模块学习|简单入门|轻松上手|自动操作浏览器进行处理|chrome|PART01

    此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 本人博客所有文章纯属学习之用,不涉及商业利益.不合适引用,自当删除! 若 ...

  6. python爬虫——使用selenium爬取微博数据(一)

    python爬虫--使用selenium爬取微博数据(二) 写在前面 之前因为在组里做和nlp相关的项目,需要自己构建数据集,采用selenium爬取了几十万条微博数据,学习了很多,想在这里分享一下如 ...

  7. [Python爬虫]使用Selenium操作浏览器订购火车票

    这个专题主要说的是Python在爬虫方面的应用,包括爬取和处理部分 [Python爬虫]使用Python爬取动态网页-腾讯动漫(Selenium) [Python爬虫]使用Python爬取静态网页-斗 ...

  8. Python 爬虫 之 Selenium 模拟打开操作浏览器爬取斗鱼全部视播相关信息,并json保存信息

    Python 爬虫 之 Selenium 模拟打开操作浏览器爬取斗鱼全部视播相关信息,并json保存信息 基础: Python 爬虫 之 Selenium.webdriver 的安装,以及模拟打开操作 ...

  9. python抓取文献关键信息,python爬虫——使用selenium爬取知网文献相关信息

    python爬虫--使用selenium爬取知网文献相关信息 写在前面: 本文章限于交流讨论,请不要使用文章的代码去攻击别人的服务器 如侵权联系作者删除 文中的错误已经修改过来了,谢谢各位爬友指出错误 ...

  10. python爬虫——用selenium爬取淘宝商品信息

    python爬虫--用selenium爬取淘宝商品信息 1.附上效果图 2.淘宝网址https://www.taobao.com/ 3.先写好头部 browser = webdriver.Chrome ...

最新文章

  1. python 难度-Python 入门的难度
  2. 5 java中的集合类_java基础(5)-集合类1
  3. 使用 VideoToolbox 探索低延迟视频编码 | WWDC 演讲实录
  4. MongoDB服务启动与停止命令(Windows环境)
  5. [数据结构-严蔚敏版]P48栈的链式表示
  6. Bash:字符串操作
  7. python 示例_Python日历类| yeardatescalendar()方法与示例
  8. 虚拟机安装windows服务出现无法打开内核设备“\\.Global\vmx86”
  9. excel vba导入html表格,Excel VBA读取网址API 类Json数据并写入单元格的方法
  10. C0型单元刚度矩阵的性质
  11. iOS 打开扬声器以及插入耳机的操作
  12. 【Windows系统资源】​​​​​​​iexplore.exe命令行参数解释
  13. 美图大咖-电商图片处理软件
  14. linux系统bcast,关于linux的Bcast的疑问.请大家帮忙看看,谢谢啦
  15. 关于解决win10重装后右键单击一直转圈的问题
  16. 山东大学程序设计思维与实践 四月模拟:TT与可怜的猫
  17. 辽宁2010省赛NEW RDSP MODE I (思维,推导公式)
  18. mysql error unpacking_linux 安装 mysql rpm包出现error: unpacking of archive failed on file
  19. scratch编程石头剪刀布
  20. 毕业论文避免查重率过高技巧

热门文章

  1. 安装 Linux -Mplayer 播放器
  2. 猫头鹰的深夜翻译:你需要了解的数据库名词
  3. HackTheGame 攻略 - 第三关
  4. apache 日志切割
  5. django源码笔记-【1】
  6. liferay中使用自己的数据库
  7. 石家庄地铁售票系统源码及截图(结对作业)
  8. Git忽略已经被提交的文件
  9. 前端面试题学习和总结
  10. Android图片三级缓存策略