十一、Selenium之滑块处理

以注册携程为例
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 自动化测试项目实战 从菜鸟到高手 田春成 李靖 /著

你可能感兴趣的:(十一、Selenium之滑块处理)