Python中Selenium模拟JQuery滑动解锁实例
发布时间 - 2026-01-11 02:30:53 点击率:次本文介绍了Python中Selenium模拟JQuery滑动解锁实例,分享给大家,也给自己留个笔记

滑动解锁一直做UI自动化的难点之一,我补一篇滑动解锁的例子,希望能给初做Web UI自动化测试的同学一些思路。
首先先看个例子。
当我手动点击滑块时,改变的只是样式:
1、slide-to-unlock-handle 表示滑块,滑块的左边距在变大(因为它在向右移动嘛!)
2、Slide-tounlock-progress 表示滑过之后的背景黄色,黄色的宽度在增加,因为滑动经过的地方都变黄了。
除些之外,没其它任何变化了,所以我们利用鼠标的拖动貌似不行!因为鼠标的拖动是将一个元素移动到另一个元素上。这样:
# 定位元素的原位置
element = driver.find_element_by_id("xx")
# 定位元素要移动到的目标位置
target = driver.find_element_by_id("xx")
ActionChains(driver).drag_and_drop(element, target).perform()
但在我手动演示的过程中,元素的位置并没有发生变化。
接下来看我是怎么实现的。
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.common.exceptions import UnexpectedAlertPresentException
from time import sleep
driver = webdriver.Chrome()
driver.get("https://www.helloweba.com/demo/2017/unlock/")
dragger = driver.find_elements_by_class_name("slide-to-unlock-handle")[0]
action = ActionChains(driver)
action.click_and_hold(dragger).perform() #鼠标左键按下不放
for index in range(200):
try:
action.move_by_offset(2, 0).perform() #平行移动鼠标
except UnexpectedAlertPresentException:
break
action.reset_actions()
sleep(0.1) #等待停顿时间
# 打印警告框提示
success_text = driver.switch_to.alert.text
print(success_text)
sleep(5)
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
# 滑动解锁
# Selenium
# Selenium 滚动页面至元素可见的方法
# python+selenium行为链登录12306(滑动验证码滑块)
# python爬虫之利用selenium+opencv识别滑动验证并模拟登陆知乎功能
# python+opencv+selenium自动化登录邮箱并解决滑动验证的问题
# python使用selenium登录QQ邮箱(附带滑动解锁)
# python中的selenium实现自动向下滚动页面并指定最大滑动距离
# 滑块
# 鼠标
# 解锁
# 第一个
# 拖动
# 按下
# 鼠标左键
# 我要
# 在我
# 是怎么
# 上有
# 当我
# 提示信息
# 第二个
# 给大家
# 看我
# 我先
# 几步
# 能给
# 它在
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
canvas 画布在主流浏览器中的尺寸限制详细介绍
lovemo网页版地址 lovemo官网手机登录
文字头像制作网站推荐软件,醒图能自动配文字吗?
Laravel定时任务怎么设置_Laravel Crontab调度器配置
奇安信“盘古石”团队突破 iOS 26.1 提权
Python3.6正式版新特性预览
Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析
什么是JavaScript解构赋值_解构赋值有哪些实用技巧
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】
Laravel Admin后台管理框架推荐_Laravel快速开发后台工具
如何在Tomcat中配置并部署网站项目?
Laravel如何配置和使用缓存?(Redis代码示例)
Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案
如何快速搭建自助建站会员专属系统?
高端智能建站公司优选:品牌定制与SEO优化一站式服务
Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程
如何制作一个表白网站视频,关于勇敢表白的小标题?
桂林网站制作公司有哪些,桂林马拉松怎么报名?
Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布
JS去除重复并统计数量的实现方法
详解jQuery中基本的动画方法
Python文件操作最佳实践_稳定性说明【指导】
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
js实现点击每个li节点,都弹出其文本值及修改
WordPress 子目录安装中正确处理脚本路径的完整指南
js代码实现下拉菜单【推荐】
Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解
Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置
Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法
三星、SK海力士获美批准:可向中国出口芯片制造设备
如何快速搭建高效WAP手机网站?
香港服务器网站卡顿?如何解决网络延迟与负载问题?
如何在阿里云服务器自主搭建网站?
Python正则表达式进阶教程_复杂匹配与分组替换解析
Laravel API资源类怎么用_Laravel API Resource数据转换
JS弹性运动实现方法分析
详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)
JavaScript如何实现路由_前端路由原理是什么
Laravel怎么实现微信登录_Laravel Socialite第三方登录集成
Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧
Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】
Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID
Laravel如何实现API速率限制?(Rate Limiting教程)
Python并发异常传播_错误处理解析【教程】
网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?
javascript如何操作浏览器历史记录_怎样实现无刷新导航
JS碰撞运动实现方法详解
如何快速搭建FTP站点实现文件共享?
Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】

