模拟登陆小米官网并用某平台自动过验证码

Selenium、PyUserInput

第一版,需要浏览器有界面的支持,因为验证码需要右击保存

 1 from selenium import webdriver
 2 from time import sleep
 3 from mytest.selenium.feifeidama import *
 4 from selenium.webdriver.common.action_chains import ActionChains
 5 from pykeyboard import PyKeyboard
 6 import os
 7 
 8 driver = webdriver.Firefox()
 9 driver.get('https://www.mi.com/index.html')
10 print(driver.title)
11 
12 driver.find_element_by_xpath('//a[@href="//order.mi.com/site/login?redirectUrl=https://www.mi.com/index.html"]').click()
13 driver.find_element_by_id('username').send_keys('xxxxxx')
14 sleep(1)
15 driver.find_element_by_id('pwd').send_keys('xxxxxx')
16 sleep(1)
17 driver.find_element_by_id('login-button').click()
18 
19 sleep(1)
20 # 鼠标移动到验证码上并右击
21 action = ActionChains(driver).move_to_element(driver.find_element_by_id('captcha-img'))
22 action.context_click(driver.find_element_by_id('captcha-img')).perform()
23 
24 # 键盘按下'v'后过一秒按下回车
25 k = PyKeyboard()
26 k.tap_key('V')
27 sleep(1)
28 k.tap_key(k.enter_key)
29 
30 path = '/root/Downloads/getCode'
31 
32 sleep(1)
33 # 用某平台识别图片上的验证码,个人现在用的平台是机器识别的,速度平均3-5秒6位字母数字,识别率超高,之前用的某人工识别的平台,速度太慢,识别率低
34 code = getCode(path, '300600')
35 
36 sleep(1)
37 print(code)
38 driver.find_element_by_id('captcha-code').send_keys(code)
39 sleep(1)
40 driver.find_element_by_id('login-button').click()
41 
42 # 删除验证码图片
43 os.remove(path)
44 print(driver.title)
45 driver.close()

 

posted @ 2018-11-27 14:09  面向bug编程  阅读(884)  评论(1)    收藏  举报