滑块作为安全验证机制的一种,经常在登录或者注册时涉及。但是在自动化测试时,需要想办法用代码的方式来处理滑块。
selenium中对滑块的操作基本是采用元素拖曳的方式,而这种方式需要用到selenium的Actionchains功能模块的drag_and_drop_by_offset方法。文章来源:https://www.toymoban.com/news/detail-525991.html
示例:以携程网的注册页面为例,URL:https://passport.ctrip.com/user/reg/home/文章来源地址https://www.toymoban.com/news/detail-525991.html
# coding = utf-8
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
# 打开chrome浏览器
d = webdriver.Chrome()
d.maximize_window()
d.implicitly_wait(10)
# 打开携程网注册页面
d.get('https://passport.ctrip.com/user/reg/home')
# 点击同意并继续
d.find_element(By.XPATH, '//div[@class="pop_footer"]/a[@class="reg_btn reg_agree"]').click()
# 定位到滑块按钮元素
ele_button = d.find_element(By.XPATH, '//div[@class="cpt-drop-btn"]')
# 打印滑块按钮的宽和高
# print('滑块按钮的宽:', ele_button.size['width'])
# print('滑块按钮的高:', ele_button.size['height'])
# 定位到滑块区域元素
ele = d.find_element(By.XPATH, '//div[@class="cpt-bg-bar"]')
# 打印滑块区域的宽和高
# print('滑块区域的宽:', ele.size['width'])
# print('滑块区域的高:', ele.size['height'])
# 拖动滑块
ActionChains(d).drag_and_drop_by_offset(ele_button, ele.size['width'], ele.size['height']).perform()
到了这里,关于selenium之滑块操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!