以注册携程为例
1、先同意协议
2、拉动滑块
处理滑块思路如下
1、先找到滑块和滑轨目标元素
2、利用ActionChains中的drag_and_drop_by_offset方法将滑块拖动至目标位置
方法 | 方法说明 |
---|---|
drag_and_drop_by_offset(source,xoffset,yoffset) | 参数说明:(源,目标位置横坐标,目标位置纵坐标) |
代码如下:
from selenium import webdriver
# selenium对于滑块的操作
from selenium.webdriver import ActionChains
driver = webdriver.Chrome()
driver.maximize_window()
driver.get("https://passport.ctrip.com/user/reg/home")
driver.find_element_by_css_selector("#agr_pop > div.pop_footer > a.reg_btn.reg_agree").click()
# 确定滑块宽度,高度
source = driver.find_element_by_css_selector("#slideCode > div.cpt-drop-box > div.cpt-drop-btn")
# 确定滑道宽度,高度
target = driver.find_element_by_css_selector("#slideCode > div.cpt-drop-box > div.cpt-bg-bar")
print("滑块width:" + str(source.size['width']) + ",height:" + str(source.size['height']))
print("滑道width:" + str(target.size['width']) + ",height:" + str(target.size['height']))
# 使用Action Chains模块拖动滑轨
ActionChains(driver).drag_and_drop_by_offset(source,target.size["width"],source.size['height']).perform()
图1
图2
Selenium 3+Python 3 自动化测试项目实战 从菜鸟到高手 田春成 李靖 /著
网友评论