Selenium + Python 自动化测试07(滑块的操作方法)

我们的目标是:按照这一套资料学习下来,大家可以独立完成自动化测试的任务。

本篇文章主要讲述如何操作滑块。

目前很多系统登录或者注册的页面都有滑块相关的验证,selenium 中对滑块的基本操作采用了元素的拖曳的方式。需要用到Actiochains模块。下面以携程网站注册的页面来说明对应的用法。

1、携程网址及对应页面

网址:https://passport.ctrip.com/user/reg/home

然后点击:同意并继续,可以看到滑块

2、编写代码执行滑块动作

1)查看滑块的元素

如下图所示:

#slideCode > div.cpt-drop-box > div.cpt-bg-bar 元素的CSS定位,滑动区域

#slideCode > div.cpt-drop-box > div.cpt-drop-btn 元素的CSS定位,滑块按钮

当然以上定位方式也可以xpath或者别的。参考下面代码

复制代码
driver.get("https://passport.ctrip.com/user/reg/home")

driver.maximize_window()

time.sleep(3)

#点击同意并继续

driver.find_element_by_xpath("//*[@id='agr_pop']/div[3]/a[2]").click()

#滑块的元素

slider =driver.find_element_by_css_selector("#slideCode > div.cpt-drop-box > div.cpt-drop-btn")

print(slider.size['width'])

print(slider.size['height'])

#滑块区域的元素

slide_range=driver.find_element_by_css_selector("#slideCode > div.cpt-drop-box > div.cpt-bg-bar")

print(slide_range.size['width'])

print(slide_range.size['height'])



#拖动滑块

ActionChains(driver).drag_and_drop_by_offset(slider,slide_range.size['width'],-slider.size['height'] ).perform()

print("滑动成功")

time.sleep(3)

使用上面的代码,可以看到下面的弹窗,说明滑块正常通过了。如下图所示:

2)ActionChains(driver).drag_and_drop_by_offset()

函数使用方法参考:

使用ActionChains(driver).drag_and_drop_by_offset方法时,‌需要传入三个参数:‌目标元素、‌X轴偏移量和Y轴偏移量。‌

这个方法允许你控制鼠标在页面上的移动,‌模拟真实的用户操作。举例:

# 假设我们有一个元素element ,‌ 我们想要将其拖动到当前位置的右侧100 像素,‌ 向下50 像素

start_element = driver.find_element_by_id("element_id") # 替换为实际的元素定位代码

ActionChains(driver).drag_and_drop_by_offset(start_element, 100, 50).perform()

不理解的话再对照看看上面的例子。

每天进步一点点,加油!

相关推荐
测试杂货铺2 小时前
外包干了2年,快要废了。。
自动化测试·软件测试·python·功能测试·测试工具·面试·职场和发展
小码哥说测试3 小时前
接口测试用例设计的关键步骤与技巧解析!
自动化测试·测试工具·jmeter·职场和发展·测试用例·接口测试·postman
小白学大数据10 小时前
正则表达式在Kotlin中的应用:提取图片链接
开发语言·python·selenium·正则表达式·kotlin
awonw19 小时前
[java][框架]springMVC(1/2)
测试工具·postman
迃幵chen1 天前
wireshark-网络分析工具
网络·测试工具·wireshark
孤蓬&听雨1 天前
RabbitMQ自动发送消息工具(自动化测试RabbitMQ)
分布式·测试工具·自动化·rabbitmq·自动发送消息
土小帽软件测试1 天前
jmeter基础01-2_环境准备-Mac系统安装jdk
java·测试工具·jmeter·macos·软件测试学习
qq_433716951 天前
测试分层:减少对全链路回归依赖的探索!
自动化测试·软件测试·功能测试·测试工具·回归·pytest·postman
qq_433716951 天前
Postman断言与依赖接口测试详解!
自动化测试·软件测试·功能测试·测试工具·mysql·接口测试·postman
如光照1 天前
Linux与Windows中的流量抓取工具:wireshark与tcpdump
linux·windows·测试工具·网络安全