py+selenium拼图式拖动滑块的验证

时间:2024-03-03 17:42:54

 

 我这边是前端提供了随机生成缺口的位置,只适合部分人

 

 先定位到需要移动的滑块位置,

应为我这边随机生成的缺口位置是display:none无法获取元素所以要先修改成block才能读取

 

 这里有一个坑就是如果你直接移动该元素的话他无法读取到你移动的位置的,你要先点击该滑块触发后才能获取到你要移动的距离

下面贴上代码:     

time.sleep(5)
# 定位到滑块位置
a = obtener_elemeentos("login", "滑块位置", 1)
b = obtener_elemeentos("login", "滑块位置", 2)
slider = login.browser.find_element(a,b)
# 修改display为block
js =obtener_elemeentos("login", "缺口js", 2)
# 执行
login.browser.execute_script(js)
# 读取随即后生产的距离
time.sleep(1)
c=obtener_elemeentos("login", "缺口距离", 1)
d = obtener_elemeentos("login", "缺口距离", 2)
distance = login.browser.find_element(c,d).text
print(distance)
while isElementExist(a,b):
time.sleep(2)
distance = login.browser.find_element(c, d).text
print(distance)
# 按住鼠标不动
login.Action.click_and_hold(slider).perform()
# 拖动到坐标后然后松手
login.Action.drag_and_drop_by_offset(slider, int(distance), 0).perform()
本人是读取的是excel里面的参数,你们要把obtener_elemeentos这个函数改一下,写的比较菜欢迎大佬指点