博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python selenium 滚动条 详解
阅读量:6324 次
发布时间:2019-06-22

本文共 1575 字,大约阅读时间需要 5 分钟。

  在我们使用Python + selenium 爬虫的时候,会遇到如下报错,原因是  当页面上的元素超过一屏后,想操作屏幕下方的元素,是不能直接定位到,会报元素不可见的。

    selenium.common.exceptions.WebDriverException: Message: unknown error: Element is not clickable at point (219, 1511)

  

    这时候需要借助滚动条来拖动屏幕,使被操作的元素显示在当前的屏幕上。滚动条是无法直接用定位工具来定位的。selenium里面也没有直接的方法去控制滚动条,

    这时候只能借助Js了,还好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)3.这里可以修改scrollTop 的值,来定位右侧滚动条的位置,0是最上面,10000是最底部。
  js="var q=document.documentElement.scrollTop=5000"  driver.execute_script(js)

二、控制横向滚动条

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

 

附:

  

# 移动到元素element对象的“顶端”与当前窗口的“顶部”对齐  driver.execute_script("arguments[0].scrollIntoView();", element);  driver.execute_script("arguments[0].scrollIntoView(true);", element);  # 移动到元素element对象的“底端”与当前窗口的“底部”对齐  driver.execute_script("arguments[0].scrollIntoView(false);", element);  # 移动到页面最底部  driver.execute_script("window.scrollTo(0, document.body.scrollHeight)");  # 移动到指定的坐标(相对当前的坐标移动)driver.execute_script("window.scrollBy(0, 700)");   # 结合上面的scrollBy语句,相当于移动到700+800=1600像素位置  driver.execute_script("window.scrollBy(0, 800)");  # 移动到窗口绝对位置坐标,如下移动到纵坐标1600像素位置  driver.execute_script("window.scrollTo(0, 1600)");  # 结合上面的scrollTo语句,仍然移动到纵坐标1200像素位置  driver.execute_script("window.scrollTo(0, 1200)");

 

转载地址:http://micaa.baihongyu.com/

你可能感兴趣的文章
locate 命令(转)
查看>>
JUnit入门
查看>>
Linux内存管理大图
查看>>
sql中exists,not exists的用法
查看>>
WebGIS中兴趣点简单查询、基于Lucene分词查询的设计和实现
查看>>
实现android activity之间的跳转
查看>>
XMPP协议实现原理介绍
查看>>
HttpWebRequest类
查看>>
Eureka 的 Application Client client的执行演示样例
查看>>
从决策树学习谈到贝叶斯分类算法、EM、HMM
查看>>
Ubuntu 14.04 字体设置
查看>>
【转载】VS配置路径和宏
查看>>
Appium移动自动化测试(四)--one demo
查看>>
jQuery来源学习笔记:扩展的实用功能
查看>>
STM32 CRC-32 Calculator Unit
查看>>
BZOJ2790 : [Poi2012]Distance
查看>>
jenkins 安装 SVN Publisher 后向 svn 提交代码报错: E170001: Authentication required for...
查看>>
伪异步IO理解
查看>>
成为JAVA GC专家系列
查看>>
我的编程之路(十八) 团队开发
查看>>