from PIL import Image
from aip import AipOcr
def imag_to_code(self,method,value):
'''
:param method: 元素定位的方式,如“id”,“link_text”
:param value: 元素定位所需的值
:return: 识别出来的验证码
'''
# 百度云账户信息
APP_ID = ""
API_KEY = ""
SECRET_KEY = ""
# 截图page
self.driver.save_screenshot('page.png')
# 获取元素
code = "self.driver.find_element_by_"+method+"('"+value+"')"
verifyimg_ele = eval(code)
# ----计算出元素上、下、左、右位置---------
left = verifyimg_ele.location['x']
top = verifyimg_ele.location['y']
right = verifyimg_ele.location['x'] + verifyimg_ele.size['width']
bottom = verifyimg_ele.location['y'] + verifyimg_ele.size['height']
img = Image.open('./page.png')
img = img.crop((left, top, right, bottom)) # 截取验证码图片
img.save('./verifyimage.png') # 保存验证码为verifyimage.png
img = open('./verifyimage.png', 'rb').read()
# result = AipOcr(APP_ID,API_KEY,SECRET_KEY).webImage(img) #网络图片文字识别
result = AipOcr(APP_ID, API_KEY, SECRET_KEY).basicAccurate(img) # 通用文字识别(高精度版)
result_list = result['words_result']
result_str = result_list[0]['words'].replace(" ", '')
return result_str
![]()