selenium 動態登陸,截取驗證碼登陸

# -*- coding:utf-8 -*-
from selenium import webdriver
from PythonHTTP調用示例.YDMHTTP import YDMHttp
#引用顯示等待
from selenium.webdriver.support.ui import WebDriverWait
from PIL import Image

driver = webdriver.Firefox()
driver.get("https://ics.autohome.com.cn/passport/account/login")
# 找到用戶名輸入
username = WebDriverWait(driver,10).until(lambda driver: driver.find_element_by_id("UserNameDealer"))
username.send_keys("元信汽車")
# 找到密碼框輸入
password = WebDriverWait(driver, 10).until(lambda driver:driver.find_element_by_id("PasswordDealer"))
password.send_keys("123456")
# 找到驗證碼標籤

captcha = WebDriverWait(driver, 10).until(lambda driver:driver.find_element_by_id("imgValidCodeDealer"))
captcha.screenshot(filename="captcha.png")
# 截圖保存的另外一個函數
# driver.save_screenshot("page.png")
# left = captcha.location["x"]
# top = captcha.location["y"]
# right = captcha.location["x"] + captcha.size["width"]
# bottom = captcha.location["y"] + captcha.size["height"]
# #
#
# img = Image.open("page.png")
# img = img.crop((left,top,right,bottom))
# img.save("captcha.png")

ydm = YDMHttp()
ydm.login()
cid,result = ydm.decode("captcha.png",5000,10)
print(result)

driver.find_element_by_id("checkCodeDealer").send_keys(result)
WebDriverWait(driver,10).until(lambda driver:driver.find_element_by_id("btnDealer")).click()
相關文章
相關標籤/搜索