021、登陆页滑块解锁
参考资料:https://www.cnblogs.com/yoyoketang/p/14204078.html
一、登陆页滑块解锁
场景
ActionChains 滑动滑块
查看 ActionChains 使用源码,相关介绍
ActionChains是一种自动化低级交互的方法,比如鼠标移动、鼠标按钮操作、按键和上下文菜单交互。这对于执行更复杂的操作(如悬停和拖放)非常有用
在调用ActionChains对象上的操作方法时,这些操作存储在ActionChains对象的队列中。调用perform()时,事件将按其顺序激发排队等候。
实现代码
selenium 里面滑动滑块需用到鼠标事件,回放下刚才操作的慢动作:按住 >> 按钮 -> 往右移动鼠标到最右端 -> 释放鼠标 -> 解锁成功
于是会用到 click_and_hold 、 move_by_offset 、 release 这三个方法,最后用 perform() 执行
from selenium import webdriver
from selenium.webdriver import ActionChains
# 作者-上海悠悠 QQ交流群:717225969
# blog地址 https://www.cnblogs.com/yoyoketang/
driver = webdriver.Chrome()
driver.get("file:///C:/Users/dell/Desktop/slider.html")
driver.maximize_window()
driver.find_element_by_id('id_username').send_keys("yoyo")
driver.find_element_by_id('id_password').send_keys("123456")
slider = driver.find_element_by_class_name("slider")
# 滑块解锁
action = ActionChains(driver)
action.click_and_hold(slider) # 按住
action.move_by_offset(248, 0) # 往右偏移248个像素
action.release() # 释放鼠标
action.perform() # 执行
# 点登陆按钮
# driver.find_element_by_xpath('//*[@type="submit"]').click()
具体拖多少个像素,可以拖动鼠标后看偏移量,如下图 248px