测试积点老人 发表于 2022-1-25 10:56:28

在使用selenium模拟登录12306时,滑块一直滑动验证失败

问题遇到的现象和发生背景在使用selenium模拟登录12306时,滑块一枝滑动验证失败import time
from 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滑块验证不成功就重新滑动
我的解答思路和尝试过的方法我想要达到的结果

kallinr 发表于 2022-1-26 09:39:01

把单个动作组合为动作链

qqq911 发表于 2022-1-26 10:25:34

都是有反爬机制的

郭小贱 发表于 2022-1-26 15:21:29

找个简单的网站练习吧,这种带有验证码性质的一般比较难处理。

jingzizx 发表于 2022-1-26 17:21:47

先找个试试,一般这种不好处理
页: [1]
查看完整版本: 在使用selenium模拟登录12306时,滑块一直滑动验证失败