51Testing软件测试论坛

标题: 在使用selenium模拟登录12306时,滑块一直滑动验证失败 [打印本页]

作者: 测试积点老人    时间: 2022-1-25 10:56
标题: 在使用selenium模拟登录12306时,滑块一直滑动验证失败
问题遇到的现象和发生背景

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

[attach]136290[/attach]

  1. import time
  2. from selenium import webdriver
  3. from selenium.webdriver import ActionChains
  4. from selenium.webdriver.common.by import By
  5. # driver.get('https://www.baidu.com')
  6. # print(driver.page_source)
  7. driver=webdriver.Chrome()
  8. driver.get('https://kyfw.12306.cn/otn/resources/login.html')
  9. def denglu():
  10.     driver.find_element(By.ID,'J-userName').send_keys('15037082591')
  11.     driver.find_element(By.ID,'J-password').send_keys('j20161422010315')
  12.     time.sleep(1)
  13.     driver.find_element(By.ID,'J-login').click()
  14.     huakuai()
  15. def huakuai():
  16.     action=ActionChains(driver)
  17.     while True:
  18.         try:
  19.             time.sleep(2)
  20.             span=driver.find_element(By.XPATH,'//*[@id="nc_1_n1z"]')
  21.             action.click_and_hold(span)
  22.             for i in range(5):
  23.                 # perform()立即执行动作链
  24.                 # move-by-offset(x,y):水平方向竖直方向
  25.                 action.move_by_offset(60, 0).perform()
  26.             # 释放动作链
  27.             action.release()
  28.             time.sleep(2)
  29.             driver.find_element(By.XPATH,'//*[@id="nc_1_refresh1"]').click()
  30.         except Exception as e:
  31.             print(e)
  32.             break
  33. if __name__ == '__main__':
  34.     denglu()



复制代码

运行结果及报错内容

[attach]136291[/attach]

我设置了一个循环,while try滑块验证不成功就重新滑动


我的解答思路和尝试过的方法我想要达到的结果

作者: kallinr    时间: 2022-1-26 09:39
把单个动作组合为动作链
作者: qqq911    时间: 2022-1-26 10:25
都是有反爬机制的
作者: 郭小贱    时间: 2022-1-26 15:21
找个简单的网站练习吧,这种带有验证码性质的一般比较难处理。
作者: jingzizx    时间: 2022-1-26 17:21
先找个试试,一般这种不好处理




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2