一个小技巧让你轻松处理Selenium处理滚动条和元素聚焦
01 JS处理滚动条
通过webdriver提供的execute_script()方法执行JS脚本操作滚动条
右侧滚动条
- Firefox浏览器和Chrome浏览器用的语法不一样,下面区分列出来,貌似谷歌浏览器71版通用火狐了
# Firefox浏览器滚动到底部
js = "var q=document.documentElement.scrollTop=10000"# Firefox浏览器滚动到顶部
js = "var q=document.documentElement.scrollTop=0"# Chrome浏览器滚动到底部
js = "var q=document.body.scrollTop=10000"# Chrome浏览器滚动到顶部
js = "var q=document.body.scrollTop=0"# 通过id属性切入操作内嵌表单的滚动条
js = "var q=document.getElementById('id').scrollTop=0"
横向滚动条:
# x为横向距离 y为纵向距离
js = "window.scrollTo(x,y);"
据说不存在兼容问题的scrollTo函数
- –scrollHeight 获取对象的滚动高度。
- –scrollLeft 设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离。
- –scrollTop 设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离。
- –scrollWidth 获取对象的滚动宽度
# 滚动到底部
js = "window.scrollTo(0,document.body.scrollHeight)"# 滚动到顶部
js = "window.scrollTo(0,0)"# 滚动到横向距离为X纵向距离为Y的位置
js = "window.scrollTo(x,y)"
执行js脚本
driver.execute_script(js)
上个代码:
# coding=utf-8
# author:Venfrom selenium import webdriver
from time import sleep
driver = webdriver.Chrome()
driver.set_window_size(width=800,height=700)
driver.get("https://www.baidu.com")driver.find_element_by_xpath("//input[@id='kw']").send_keys('selenium')driver.find_element_by_xpath("//input[@id='su']").click()sleep(1)js = "window.scrollTo(0,document.body.scrollHeight)"driver.execute_script(js)sleep(1)js = "window.scrollTo(500,0)"driver.execute_script(js)sleep(1)driver.quit()
02 元素聚焦
通过JS让页面直接跳到元素出现的位置(注意遮盖现象,聚焦被遮盖聚焦附近元素)
target = driver.find_element_by_xpath()
driver.execute_script(“arguments[0].scrollIntoView();”, target)
# coding=utf-8
# author:Venfrom selenium import webdriver
from time import sleepdriver = webdriver.Chrome()
driver.get("https://www.baidu.com")driver.find_element_by_xpath("//input[@id='kw']").send_keys('selenium')driver.find_element_by_xpath("//input[@id='su']").click()
driver.set_window_size(width=600, height=600)
sleep(2)
target = driver.find_element_by_xpath("//*[@id='page']/a[1]/span[2]")
driver.execute_script("arguments[0].scrollIntoView();", target) # 元素聚焦到翻页按钮 - 2
sleep(2)
driver.quit()
最后:推荐一个学习公众号,你可以在公众号:伤心的辣条 ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中资料包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。
学习不要孤军奋战,最好是能抱团取暖,相互成就一起成长,群众效应的效果是非常强大的,大家一起学习,一起打卡,会更有学习动力,也更能坚持下去。
喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!
好文推荐
转行面试,跳槽面试,软件测试人员都必须知道的这几种面试技巧!
面试经:一线城市搬砖!又面软件测试岗,5000就知足了…
面试官:工作三年,还来面初级测试?恐怕你的软件测试工程师的头衔要加双引号…
什么样的人适合从事软件测试工作?
那个准点下班的人,比我先升职了…
测试岗反复跳槽,跳着跳着就跳没了…
一个小技巧让你轻松处理Selenium处理滚动条和元素聚焦相关推荐
- 不需要自己录音也能做好短视频配音,只需一个小技巧,get逼真配音
不需要自己录音也能做好短视频配音,只需一个小技巧,get逼真配音 在做短视频的时候,很多小伙伴都会遇到需要为短视频配音的情况.有的小伙伴天生嗓音条件不错,或者声音比较有特色,于是他们就更愿意自己配音, ...
- Oracle中删除数据的一个小技巧
在我带的某个Project中,在开发阶段需要Reload相同的Data到Oracle中来进行测试,因此需要不断的删除数据,简单的Delete操作似乎就OK了,但其实不然.我们到知道建表的时候需要Tab ...
- python中template是什么意思啊_Python中Template使用的一个小技巧
Python中Template是string中的一个类,可以将字符串的格式固定下来,重复利用. from string import Template s = Template("there ...
- 配音是怎么制作出来的,想做出让人惊艳的配音,只需一个小技巧
配音是怎么制作出来的,想做出让人惊艳的配音,只需一个小技巧 配音,除了是一部分赖以为生的技能之外,也是很多小伙伴打发时间的娱乐方式.专业的配音演员可以让影视剧.动漫的内容拥有灵魂,也可以通过阅读有声书 ...
- 短视频的地方搞笑配音怎么做?分享一个小技巧,不会方言也能配
短视频的地方搞笑配音怎么做?分享一个小技巧,不会方言也能配 各位小伙伴在刷短视频的时候,相信也经常会看到一些有趣的地方搞笑配音短视频,有趣的画面配上独具一格的地方方言,着实很轻易就可以让人哈哈大笑.那 ...
- 有没有测试女生暗恋的软件,教你一个小技巧就可以测试女生是否喜欢你!
原标题:教你一个小技巧就可以测试女生是否喜欢你! 有个兄弟好不容易认识一个女孩,通过不懈努力,终于把她约出来.但是在约会过程当中不知道和女孩干什么,不知道什么时候可以干什么. 看着自己喜欢的女孩坐在自 ...
- ug计算机内存不足,你的UG内存不足你怎么办的呢?告诉你一个小技巧吧
哈...是不是有时候UG卡到想砸电脑啊,别呀,好几千呢?砸了还要买新的是吧 今天小编就教你们一个小技巧吧,别再砸电脑了,伤不起伤不起呀 上面这张图是不是很眼熟啊,哈哈哈哈哈哈哈 对于这个的话以下的方法 ...
- 如何解决matlab保存图片为pdf时不完整问题【每天一个小技巧】
本文结构 0. 引言 1. 问题描述 2. 解决方法 3. 总结 0. 引言 习惯使用matlab出图的人都会发现,当我们的图中有大量信息的时候,保存成的pdf是不完整的,总是缺一部分,是怎么回事呢? ...
- 使用mspaint改变图片大小的一个小技巧记录
有些时候,我们截取了一系列图片,放置到某个MFC里面,像ImageList: 但由于原始大小的不同,图片被拉长或拉短的变形了,会比较难看. 办法通常有两个: 1. 重新按比例截取图片 2. 把图片进行 ...
最新文章
- 基于SAAS的IT运维管理方案
- kettle创建mysql资源库
- 在ORACLE產生001,002的流水號
- google海底光缆图_谷歌地图资讯-2013版“海底光缆地图”发布
- 如何构建“正确的”云平台存储
- 算法篇(一)直接插入排序与快速排序
- phpstudy所需的vc11和vc14运行库
- 打开和关闭 Oralce PDB数据库
- AES对称加密原理及服务
- cf手游服务器连接中断,CF手游服务器连接失败怎么回事 无法连接服务器
- 分享AI前端硬件识别4G摄像头模组方案
- 快速画简笔画网站推荐以及思考
- 浅谈软件测试行业的前景,就业方向和薪资待遇
- 中科院大学计算机科学与技术王伟强,李振宇 - 中国科学院大学 - 计算机科学与技术学院...
- JavaScript:在一段时间不连续的数据中获取某一段时间段内相同时间间隔的数据
- 区块链之一 起源思想和本质
- 万能遥控器【解题报告】
- 希利苏斯起始任务_希利苏斯战地任务快速完成方法 大地之击半天入手
- CSDN eMag 博文视点 奖励计划!!
- 普元DevOps使用规范与流程
热门文章
- 132. 分割回文串 II
- shared_ptr使用场景、陷阱、性能分析,使用建议
- .net webapi导出html,C#(.Net Core WebAPI)之API文档的生成(Swagger)
- java 枚举获取key_「Java必修课」HashMap性能很好?问过我EnumMap没
- java 集合初始化_6种方法初始化JAVA中的list集合
- html超链接同一页面,你绝对想要的HTML页面超链接的修改问题
- Qt Creator 添加自定义注释
- php jq ajax 4个下拉框联动案列,AJAX_AJAX实现下拉框联动,想当年,为了实现三级联动, - phpStudy...
- 索引法则--最佳左前缀法则
- 网站前端和后台性能优化22