python自动化滑动解锁_Python中Selenium模拟JQuery滑动解锁实例
滑动解锁一直做UI自动化的难点之一,我补一篇滑动解锁的例子,希望能给初做Web UI自动化测试的同学一些思路。
首先先看个例子。
当我手动点击滑块时,改变的只是样式:
1、slide-to-unlock-handle 表示滑块,滑块的左边距在变大(因为它在向右移动嘛!)
2、Slide-tounlock-progress 表示滑过之后的背景黄色,黄色的宽度在增加,因为滑动经过的地方都变黄了。
除此之外,没其它任何变化了,所以我们利用鼠标的拖动貌似不行!因为鼠标的拖动是将一个元素移动到另一个元素上。这样:
1 #定位元素的原位置
2 element = driver.find_element_by_id("xx")3 #定位元素要移动到的目标位置
4 target = driver.find_element_by_id("xx")5
6 ActionChains(driver).drag_and_drop(element, target).perform()
但在我手动演示的过程中,元素的位置并没有发生变化。
------------------------------------------华丽分割------------------------------------------
接下来看我是怎么实现的。
1 from selenium importwebdriver2 from selenium.webdriver.common.action_chains importActionChains3 from selenium.common.exceptions importUnexpectedAlertPresentException4 from time importsleep5
6 driver =webdriver.Chrome()7 driver.get("https://www.helloweba.com/demo/2017/unlock/")8
9
10 dragger = driver.find_elements_by_class_name("slide-to-unlock-handle")[0]11
12 action =ActionChains(driver)13
14 action.click_and_hold(dragger).perform() #鼠标左键按下不放
15
16 for index in range(200):17 try:18 action.move_by_offset(2, 0).perform() #平行移动鼠标
19 exceptUnexpectedAlertPresentException:20 break
21 action.reset_actions()22 sleep(0.1) #等待停顿时间
23
24
25 #打印警告框提示
26 success_text =driver.switch_to.alert.text27 print(success_text)28
29 sleep(5)30
31 driver.quit()
driver.find_elements_by_class_name("slide-to-unlock-handle")[0]
首先,我要操作的页面上有好几个滑块,我先通过通过class属性找到所有的里面的第一个。
click_and_hold()
通过click_and_hold()方法对滑块按下鼠标左键。
move_by_offset()
接下来就是通过for循环动滑块的位置,move_by_offset()方法第一个参数是X轴,第二个参数是Y轴,单位为像素。因为是平行移动,所以Y设置为0。 X每次移动两2个像素。
当解锁成功后会抛UnexpectedAlertPresentException异常,捕捉后跳出循环。
每次循环休眠0.1秒,时间间隔越小,移动越顺滑哟!
核心的几步介绍完了,接下来就是获取警告框上面的提示信息并打印,然后关闭浏览器。
打印结果为:
successfully unlock!
python自动化滑动解锁_Python中Selenium模拟JQuery滑动解锁实例相关推荐
- python获取登录按钮_Python:Selenium模拟Chrome浏览器抓取淘宝商品信息
对于采用异步加载技术的网页,有时候想通过逆向工程的方式来设计爬虫进行爬取会比较困难,因此,要想通过python获取异步加载数据往往可以使用Selenium模拟浏览器的方式来获取. Selenium是一 ...
- python的id方法_python中id()函数的实用研究实例
python中id()函数的实用研究实例 >>> a = 2.5 >>> b = 2.5 >>> c = b >>> a is ...
- python怎么处理数据_python中scrapy处理项目数据的实例分析
在我们处理完数据后,习惯把它放在原有的位置,但是这样也会出现一定的隐患.如果因为新数据的加入或者其他种种原因,当我们再次想要启用这个文件的时候,小伙伴们就会开始着急却怎么也翻不出来,似乎也没有其他更好 ...
- python中类的构成_Python中类型关系和继承关系实例详解
本文详细介绍了Python中类型关系和继承关系.分享给大家供大家参考.具体分析如下: 如果一个对象A持有另一个对象B的ID,那么检索到A之后就可以检索到B,我们就说存在一个A到B的导航.这种导航关系使 ...
- Selenium模拟JQuery滑动解锁
滑动解锁一直做UI自动化的难点之一,我补一篇滑动解锁的例子,希望能给初做Web UI自动化测试的同学一些思路. 首先先看个例子. https://www.helloweba.com/demo/2017 ...
- python 裁判文书网_python - 用selenium模拟登陆裁判文书网,系统报错找不到元素。...
问 题 from selenium import webdriver from selenium.webdriver.common.desired_capabilities import Desire ...
- python代码写龙卷风_Python中的模拟龙卷风类
我想用单元测试来介绍on_text方法.我想用非unicode消息检查on_text,看看{}被调用了.在class MyTornadoClass(object): @gen.coroutine de ...
- python逗号怎么用_Python中逗号的三种作用实例分析
本文实例讲述了Python中逗号的三种作用.分享给大家供大家参考.具体分析如下: 最近研究python 遇到个逗号的问题 一直没弄明白 今天总算搞清楚了 1.逗号在参数传递中的使用: 这种情况不多说 ...
- python算法和数据结构_Python中的数据结构和算法
python算法和数据结构 To 至 Leonardo da Vinci 达芬奇(Leonardo da Vinci) 介绍 (Introduction) The purpose of this ar ...
最新文章
- iOS app性能优化的那些事
- 《小美斗地主》:棋牌手游新商业模式启示录
- 列表初始化和赋值初始化的使用注意事项
- [译]第三章:什么是组织结构
- 测试工程师---笔试面试题
- loadrunner之header相关,token等
- Halcon深度学习预训练网络模型
- 知识管理,助力员工培训体系构建
- 51单片机led流水灯程序
- 怎样将计算机和电视机连接网络连接,家里怎么连接网络到电视机,让电脑和电视都可以上网...
- ES:java.nio.file.AccessDeniedException: /opt/shan/es/config/elasticsearch.keystore
- 【活动时间调整】博客搬家,有礼相送
- 【小程序实战学习(一)】购物小程序-首页
- Hadoop/Hive-学习笔记【中级篇】
- Softing新版HART多路复用器软件支持西门子控制器
- 微信小程序-图片宽高设置
- 我如何从月薪1800到年薪百万的饿了么技术总监到自由职业?
- C#实现的系统内存清理工具
- Web登录使用RSA对密码进行加密解密过程
- 动态联编与静态联编的区别
热门文章
- 计算机毕业设计Node.js+Vue理想电子商城网站(程序+源码+LW+部署)
- 计算机应用专业社会环境分析,计算机应用专业人才岗位需求分析调研报告
- 普歌-飞灵团队-ES6汇总
- 20200515省选模拟赛B、幻化成风(毒瘤容斥题+构造容斥系数+生成函数+hash状压DP+Trie树优化背包)
- 实战py绘制物流行业快递业务量折线图
- Windows Sever 2008 获得NTFS文件系统的方式
- 单纯形法详解及MATLAB实现,对偶单纯形法详解及MATLAB实现
- 【Linux】 NFS服务器实现开机自动挂载
- 主流区块链共识算法大全
- 32:第三章:开发通行证服务:15:浏览器存储介质,简介;(cookie,Session Storage,Local Storage)