在使用selenium模拟登录12306时,滑块一直滑动验证失败
问题遇到的现象和发生背景在使用selenium模拟登录12306时,滑块一枝滑动验证失败import timefrom selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By
# driver.get('https://www.baidu.com')
# print(driver.page_source)
driver=webdriver.Chrome()
driver.get('https://kyfw.12306.cn/otn/resources/login.html')
def denglu():
driver.find_element(By.ID,'J-userName').send_keys('15037082591')
driver.find_element(By.ID,'J-password').send_keys('j20161422010315')
time.sleep(1)
driver.find_element(By.ID,'J-login').click()
huakuai()
def huakuai():
action=ActionChains(driver)
while True:
try:
time.sleep(2)
span=driver.find_element(By.XPATH,'//*[@id="nc_1_n1z"]')
action.click_and_hold(span)
for i in range(5):
# perform()立即执行动作链
# move-by-offset(x,y):水平方向竖直方向
action.move_by_offset(60, 0).perform()
# 释放动作链
action.release()
time.sleep(2)
driver.find_element(By.XPATH,'//*[@id="nc_1_refresh1"]').click()
except Exception as e:
print(e)
break
if __name__ == '__main__':
denglu()
运行结果及报错内容我设置了一个循环,while try滑块验证不成功就重新滑动
我的解答思路和尝试过的方法我想要达到的结果
把单个动作组合为动作链 都是有反爬机制的 找个简单的网站练习吧,这种带有验证码性质的一般比较难处理。 先找个试试,一般这种不好处理
页:
[1]