转自:http://www.cnblogs.com/fnng/p/3256563.html

本节重点:

  • 控制滚动条到底部

有时候我们需要控制页面滚动条上的滚动条,但滚动条并非页面上的元素,这个时候就需要借助js是来进行操作。一般用到操作滚动条的会两个场景:

  • 注册时的法律条文需要阅读,判断用户是否阅读的标准是:滚动条是否拉到最下方。
  • 要操作的页面元素不在吸视范围,无法进行操作,需要拖动滚动条

其实,实现这个功能只要一行代码,但由于不懂js ,所以花了不小力气找到这种方法。

用于标识滚动条位置的代码

<body   onload= "document.body.scrollTop=0 ">
<body onload= "document.body.scrollTop=100000 ">

如果滚动条在最上方的话,scrollTop=0 ,那么要想使用滚动条在最可下方,可以scrollTop=100000 ,这样就可以使滚动条在最下方。

场景一

先来解决场第一个问题,法律条款是一个内嵌窗口,通过firebug工具可以定位到内嵌入窗口可以定位到元素的id ,可以通过下面的代码实现。

js="var q=document.getElementById('id').scrollTop=10000"
driver.execute_script(js)

注:由于没找到合适的例子,所没验证,从参考资料来看这种写法应该没问题,如有请反馈。

场景二

有滚动条的页面到处可见,这个就比较容易找例子,我们以操作百度搜索结果页为例:

#coding=utf-8
from selenium import webdriver
import time #访问百度
driver=webdriver.Firefox()
driver.get("http://www.baidu.com") #搜索
driver.find_element_by_id("kw").send_keys("selenium")
driver.find_element_by_id("su").click()
time.sleep(3) #将页面滚动条拖到底部
js="var q=document.documentElement.scrollTop=10000"
driver.execute_script(js)
time.sleep(3) #将滚动条移动到页面的顶部
js="var q=document.documentElement.scrollTop=0"
driver.execute_script(js)
time.sleep(3) driver.quit()

若需要处理弹出窗口中的滚动条

则用如下代码:

#将页面滚动条拖到底部
js='var q=document.getElementById("merregistr").getElementsByClassName("modal-body")[0].scrollTop = 9999;'
driver.execute_script(js)
time.sleep(3)
            #scroll to bottom
js="document.body.scrollTop = 99999;"
driver.execute_script(js)
time.sleep()

参考:

http://luyongxin88.blog.163.com/blog/static/92558072011101913013149/

http://blog.csdn.net/iceryan/article/details/8162703

最新文章

  1. react-native 学习之Image篇
  2. 《30天自制操作系统》笔记(02)——导入C语言
  3. Recovering deleted Records
  4. Ultra-QuickSort
  5. SQL 查询某个表被哪些存储过程使用到
  6. Hibernate总结
  7. (二)iOS如何把所有界面的状态栏的字体颜色都设置为白色
  8. jQuery和CSS 3定制HTML 5视频播放器
  9. [iOS微博项目 - 2.2] - 在app中获取授权
  10. poj1830
  11. C/C++数据对齐汇总
  12. audio session config
  13. pyspider安装出现问题参考
  14. nodeJs --- web服务器创建
  15. leetcode128
  16. string替换字符串,路径的斜杠替换为下划线
  17. Java中断异常 InterruptedException 的正确处理方式
  18. Node.js 知识(教程)
  19. day 50 JS框架基础
  20. git 同步非master分支

热门文章

  1. 20162307 实验三 敏捷开发与XP实践
  2. ThreadLocal用法详解和原理(转)
  3. ORACLE常用性能监控SQL【一】
  4. wince5.0 plat form builder下载
  5. [转]Getting started with SSIS - Part 10: Event Handling and Logging
  6. (转)RedHat/CentOS安装和配置kerberos
  7. scrapy处理需要跟进的url
  8. django 模板实现换行
  9. MVP+Dagger2+Rxjava+Retrofit+GreenDao 开发的小应用,包括新闻、图片、视频3个大模块,代码封装良好
  10. 使用ant构建报错,编码GBK的不可映射字符解决方法