Selenium(十三)调用js,控制浏览器的滚动条
WebDiver 不能操作本地 Windows 控件,但对于浏览器上的控件也不是都可以操作的。比如浏览器的滚动条,虽然 WebDriver 提供操作浏览器的前进和后退按钮,但对于滚动条并没有提供相应用的方法。
那么在这种情况下就可以借助 JavaScript 方法来控制浏览器滚动条。WebDriver 提供了 execute_script()方法来执行 JavaScript 代码。
一般用到操作滚动条的会两个场景:
- 注册时的法律条文的阅读,判断用户是否阅读完成的标准是:滚动条是否拉到最下方。
- 要操作的页面元素不在视觉范围,无法进行操作,需要拖动滚动条。
用于标识滚动条位置的代码
……
<body onload= "document.body.scrollTop=0 ">
<body onload= "document.body.scrollTop=100000 "> ……
document.body.scrollTop
scrollTop 设置或获取滚动条与最顶端之间的距离。如果想让滚动条处于顶部,那么可以设置 scrollTop 的值为 0,如果想让滚动条处于最底端,可以将这个值设置的足够大,大个窗口的高度即可。scrollTop 的值以像素为单位。
#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)
#将滚动条移动到页面的中间
js_="var q=document.documentElement.scrollTop=500"
driver.execute_script(js_)
time.sleep(3)
driver.quit()
通过浏览器打开百度进行搜索,搜索的一屏无法完全显示将会出现滚动条。这个时候就可以通过
JavaScript 代码控制滚动条在任意位置,需要改变的就是 scrollTop 的值。通过 execute_script()方法来执行这段 JavaScript 代码。
Selenium(十三)调用js,控制浏览器的滚动条的更多相关文章
- Selenium 2自动化测试实战21【调用JavaScript(控制浏览器的滚动条)】
一.调用JavaScript(控制浏览器的滚动条) WebDriver提供了execute_script()方法来执行JavaScript代码.用于调整浏览器滚动条位置的JavaScript代码如下 ...
- Java&Selenium自动化测试调用JS实现单击
Java&Selenium自动化测试调用JS实现单击 /* * the method of invoking js to do something * * @author davieyang ...
- 《selenium2 python 自动化测试实战》(15)——调用js控制滚动条等操作
看代码: # coding=utf-8 from time import sleepfrom selenium import webdriver driver = webdriver.Firefox( ...
- js控制浏览器全屏
HTML 5中的full screen,目前可以在除IE和opera外的浏览器中使用 ,有的时候用来做全屏API,游戏呀,等都很有用.先看常见的API element.requestFullScree ...
- python selenium中调用js
python 中js中单引号和双引号混合编程 js = 'document.getElementsByName("m:ybzbxmbd:b_BIANHAO")[0].setAttr ...
- js 控制浏览器窗口大小
//打开一个新窗口并设置其大小window.open('index.html','','width=450,height=750,location=no,menubar=no,status=no,to ...
- js控制浏览器后退
<script type="text/javascript"> window.history.forward(1); </script>
- Selenium with Python 005 - 调用js操作页面元素
WebDriver提供了execute_script()方法来执行JavaScript方法,格式如 driver.execute_script(script,*args) 执行js一般有两种场景,一是 ...
- webdriver 属于selenium 体系中设计出来操作浏览器的一套API
1.元素的定位 1.id属性定位 实例: find_element_by_id("kw") 2.name属性定位,同id一样是属性值 实例: find_element_ ...
随机推荐
- WXS---基础类库
- python基础篇(三)
PYTHON基础篇(三) 装饰器 A:初识装饰器 B:装饰器的原则 C:装饰器语法糖 D:装饰带参数函数的装饰器 E:装饰器的固定模式 装饰器的进阶 A:装饰器的wraps方法 B:带参数的装饰器 C ...
- Java设计模式:23种设计模式(转)
单例(Singleton)模式:某个类只能生成一个实例,该类提供了一个全局访问点供外部获取该实例,其拓展是有限多例模式. 原型(Prototype)模式:将一个对象作为原型,通过对其进行复制而克隆出多 ...
- Python35之包的创建
包(package) 一.创建一个文件夹,用于存放相关的模块,文件夹的名字即包的名字 二.在文件夹中创建一个__init__.py的模块文件,内容可以为空 三将相关的模块放入文件夹中 这样就相当于创建 ...
- Docker学习笔记导航帖
1. Docker安装 安装docker https://www.cnblogs.com/kreo/p/10813010.html
- docker 宿主机与容器直接文件移动命令
1.将容器中的文件复制到宿主机 我们把容器中的 nginx 目录整个复制到 宿主机/usr/local/nginx 目录下,使用如下命令: docker cp nginx_test: /etc/ng ...
- Java定时任务工具详解之Timer篇
Java定时任务调度工具详解 什么是定时任务调度? ◆ 基于给定的时间点,给定的时间间隔或者给定的执行次数自动执行的任务. 在Java中的定时调度工具? ◆ Timer ◆Quartz T ...
- 骨骼蒙皮动画(SkinnedMesh)
骨骼蒙皮动画也就是SkinnedMesh,应该是目前用的最多的3D模型动画了.因为他可以解决关节动画的裂缝问题,而且原理简单,效果出色,所以今天详细的谈一下骨骼蒙皮动画的相关知识. 关节动画中使用的是 ...
- eigenface算法笔记
昨天看了PCA(PCA算法介绍见上一篇),今天继续看eigenface,在这里把eigenface的过程梳理下: EigenFace本质上讲,是把人脸从像素空间变换到另一个空间,在另一个空间中做相似性 ...
- java对日开发常用语(词汇)总结
日语 英语 中文 备注 並び順(ならびじゅん) order by 排序 項目(こうもく) field 字段,域 ...