webdriver-js操作滚动条
webdriver-js操作滚动条
1. webdriver高级应用-js操作滚动条
1.滑动页面的滚动条到页面最下面
2.滑动页面的滚动条到页面的某个元素
3.滑动页面的滚动条向下移动某个数量的像素
1.1. 相关方法
|
按照指定的像素值来滚动内容。 |
|
|
把内容滚动到指定的坐标。 |
scrollBy() 方法可把内容滚动指定的像素数。
语法
scrollBy(xnum,ynum)
|
参数 |
描述 |
|
xnum |
必需。把文档向右滚动的像素数。 |
|
ynum |
必需。把文档向下滚动的像素数。 |
scrollTo() 方法可把内容滚动到指定的坐标。
语法scrollTo(xpos,ypos)
|
参数 |
描述 |
|
xpos |
必需。要在窗口文档显示区左上角显示的文档的 x 坐标。 |
|
ypos |
必需。要在窗口文档显示区左上角显示的文档的 y 坐标。 |
滚动内容的坐标位置100,500:
function scrollWindow(){
window.scrollTo(100,500);
}
还有一些方法scrollIntoView是较新的功能,兼容性需确认。
1.2.
测试代码
#encoding=utf-8
from selenium import webdriver
import unittest
import traceback
import time
class TestDemo(unittest.TestCase):
def setUp(self):
# 启动IE浏览器
self.driver =
webdriver.Ie(executable_path = "e:\\IEDriverServer")
def test_scroll(self):
url = "http://www.sohu.com/"
# 访问selenium官网首页
try:
self.driver.get(url)
# 使用JavaScript的scrollTo函数和document.body.scrollHeight参数
# 将页面的滚动条滑动到页面的最下方
self.driver.execute_script("window.scrollTo(0,
document.body.scrollHeight);")
# 停顿3秒,用于人工验证滚动条是否滑动到指定的位置。
# 根据测试需要,可注释下面的停顿代码
time.sleep(3)
# 使用JavaScript的scrollIntoView函数将被遮挡的元素滚动到可见屏幕上
# scrollIntoView(true)表示将元素滚到屏幕中间
# scrollIntoView(false)表示将元素滚动屏幕底部
self.driver.execute_script("document.getElementsByTagName('a')[500].scrollIntoView(true);")
#for i in
range(10,900):
#driver.execute_script("document.getElementsByTagName('a')[%s].scrollIntoView(true);"
%i)
#("document.getElementById('choice').scrollIntoView(true);")
# 停顿3秒,用于人工验证滚动条是否滑动到指定的位置。
# 根据测试需要,可注释下面的停顿代码
time.sleep(3)
# 使用JavaScript的scrollTo方法,使用0和400横纵坐标参数,
# 将页面纵向向下滚动400像素
self.driver.execute_script("window.scrollBy
(0,400);")
# 停顿3秒,用于人工验证滚动条是否滑动到指定的位置。
# 根据测试需要,可注释下面的停顿代码
time.sleep(3)
except Exception,
e:
# 打印异常堆栈信息
print
traceback.print_exc()
def tearDown(self):
# 退出IE浏览器
self.driver.quit()
if __name__ == '__main__':
unittest.main()
webdriver-js操作滚动条的更多相关文章
- webdriver高级应用-js操作滚动条
1.滑动页面的滚动条到页面最下面 2.滑动页面的滚动条到页面的某个元素 3.滑动页面的滚动条向下移动某个数量的像素 #encoding=utf-8 from selenium import webdr ...
- selenium 调用JS操作滚动条(java)来解决element not clickable的问题
今天在运行自动化用例的时候,发现总是某个元素提示not clickable.分析原因有可能是页面右下角那个大大的top图标,刚好挡住了我要点击的元素.要解决就得拉动页面,就需要操作页面上的滚动条. ...
- selenium webdriver——JS操作日历控件
一般的日期控件都是input标签下弹出来的,如果使用webdriver 去设置日期, 1. 定位到该input 2. 使用sendKeys 方法 比如 但是,有的日期控件是readonly的 比如12 ...
- Python selenium webdriver设置js操作页面滚动条
js2 = "window.scrollTo(0,0);" #括号中为坐标 当不知道需要的滚动的坐标大小时: weizhi2 = driver.find_element_by_id ...
- java selenium webdriver处理JS操作窗口滚动条
未经作者允许,禁止转载!!! java selenium webdriver处理JS操作窗口滚动条 java selenium webdriver处理JS操作窗口滚动条 import org.open ...
- Python3+Selenium3+webdriver学习笔记12(js操作应用:滚动条 日历 内嵌div)
#!/usr/bin/env python# -*- coding:utf-8 -*-'''Selenium3+webdriver学习笔记12(js操作应用:滚动条 日历 内嵌div)'''from ...
- python3 + selenium 使用 JS操作页面滚动条
js2 = "window.scrollTo(0,0);" #括号中为坐标 当不知道需要的滚动的坐标大小时: weizhi2 = driver.find_element_by_id ...
- js处理滚动条操作
在做UI自动化项目的时候,我们不免会遇到一些页面的内容比较多,导致会有滚动条,但是我们又主要操作当前页面看不到的元素,这怎么办呢? 在我们实际操作过程中,我们肯定是直接滑动鼠标操作就可以完成,但是在做 ...
- webdriver与JS操作浏览器元素
1.JQuery的选择器实例 语法 描述 $(this) 当前 HTML 元素 $("p") 所有 <p> 元素 $("p.intro") 所有 c ...
随机推荐
- Mysq的安装
1.安装包下载 2.安装教程 (1)配置环境变量 (2)生成data文件 (3)安装MySQL (4)启动服务 (5)登录MySQL (6)查询用户密码 (7)设置修改用户密码 (8)退出 1.安装包 ...
- markdown pic
Markdown 图片 Markdown 图片语法格式如下:   开头一个感叹号 ! 接着一个方括 ...
- 前端——语言——Core JS——《The good part》读书笔记——第六章节(Arrays)
本章介绍数组的内容,Java中的数组在创建时,会分配同等大小的内存空间,一旦创建数组的大小无法改变,如果数据超过数组大小,会进行扩容操作.并且数组的元素类型在创建时必须是已知的,而且只能存放相同数据类 ...
- 数据库程序接口——JDBC——功能第五篇——批量处理
综述 批量处理一般指批量插入,批量更新,删除通过可以指定where条件实现.批量插入的实现方式有三种类型.statement,preparedStatement,callableStatement. ...
- Atcoder Beginner Contest153F(模拟)
应该也可以用线段树/树状数组区间更新怪兽的生命值来做 #define HAVE_STRUCT_TIMESPEC #include<bits/stdc++.h> using namespac ...
- jmeter实现一次登录,多次业务请求(不同线程组间共享cookie和变量)
实现目的 很多时候,在进行性能测试时,需要先登录,然后再对需求的事务进行相关性能测试,此时的登录操作,并不在本次性能测试的范围内,所以我们只需要登录一次,然后获取登录成功后的cookie等,并将coo ...
- 6_2 铁轨(UVa514)<栈>
在一个叫「堆叠市」的城市中有一个有名的火车站.由于地形限制以及经费的关系,火车站及唯一的铁路的样子如下图: 现在火车从A方向来,预定从B方向离开.火车共有N节车厢(N <=1000),并且各车厢 ...
- oracle 11g快捷版的安装与使用
oracle 11g快捷版的安装与使用 [oracle 11g 下载地址(]https://www.oracle.com/technetwork/cn/database/enterprise-edit ...
- 【PAT甲级】1075 PAT Judge (25 分)
题意: 输入三个正整数N,K,M(N<=10000,K<=5,M<=100000),接着输入一行K个正整数表示该题满分,接着输入M行数据,每行包括学生的ID(五位整数1~N),题号和 ...
- 记一次深坑,dubbo暴露的服务无法注册到zookeeper的原因
项目用的架构,springboot,dubbo,zookeeper dubbo的provider作为服务单独使用,里面的service实现类使用了@Transactional注解,想集成spring的 ...