#通过借助百度AI开放平台识别验证码登录职教云
from PIL import Image
from aip import AipOcr
import unittest
#
driver.get(zjy_url)
driver.maximize_window()
#输入账号密码
ActionChains(driver)\
.click(driver.find_element_by_name('userName')).send_keys('xxxx')\
.click(driver.find_element_by_name('userPassword')).send_keys('xxxx')\
.perform()
while True:
scr_path='./pic/zjy_sreenshot.png'
driver.find_element_by_name('photoCode').clear()
driver.get_screenshot_as_file(scr_path)
#获取验证码的大小(宽高)及位置
location=driver.find_element_by_xpath('//*[@id="x-modify"]/div/img[2]').location
size=driver.find_element_by_xpath('//*[@id="x-modify"]/div/img[2]').size
#经测试,坐标不准确
# print(location,size)
left=int(location['x'])
right=int(location['x']+size['width'])#
top=int(location['y'])
bottom=int(location['y']+size['height'])#
#使用PIL的Image方法裁剪截屏并保存
Image.open(scr_path).crop((397,325,522,361)).save(scr_path)
#相关变量的定义
AppID='xxxx'#百度应用账号ID
APIKey='xxxx'#针对接口访问的授权方式
SecretKey='xxxx'#密钥
#初始化操作
client=AipOcr(AppID,APIKey,SecretKey)
img=open(scr_path,'rb').read()
message=client.basicGeneral(img)#
for i in message.get('words_result'):
print('尝试验证码:',i.get('words'))
if message.get('words_result') != []: driver.find_element_by_name('photoCode').send_keys(i.get('words'))
else:driver.find_element_by_name('photoCode').send_keys('ok')
driver.find_element_by_id('btnLogin').click()
time.sleep(1)
#验证是否成功
if driver.title != "职教云":
print('登录成功')
break
else:
#https://www.cnblogs.com/jie-2019/p/11921365.html
driver.find_element_by_css_selector('*[class="sgBtn ok"]').click()
print('再次登录')
#登录成功之后弹出窗口,点击'我知道了'
driver.find_element_by_css_selector('*[class="ad-cancel-sp"]').click()

selenium自动化 | 借助百度AI开放平台识别验证码登录职教云的更多相关文章

  1. 百度AI开放平台,语音识别,语音合成以及短文本相似度

    百度AI开放平台:https://ai.baidu.com/ 语音合成 from aip import AipSpeech APP_ID=" #'你的 App ID' API_KEY=&qu ...

  2. 百度AI开放平台- API实战调用

    百度AI开放平台- API实战调用 一.      前言 首先说一下项目需求. 两个用户,分别上传了两段不同的文字,要计算两段文字相似度有多少,匹配数据库中的符合条件的数据,初步估计列出来会有60-1 ...

  3. 基于百度AI开放平台的人脸识别及语音合成

    基于百度AI的人脸识别及语音合成课题 课题需求 (1)人脸识别 在Web界面上传人的照片,后台使用Java技术接收图片,然后对图片进行解码,调用云平台接口识别人脸特征,接收平台返回的人员年龄.性别.颜 ...

  4. 百度AI开放平台 UNIT平台开发在线客服 借助百度的人工智能如何开发一个在线客服系统

    这段时间在研究一些人工智能的产品,对比了国内几家做人工智能在线客服的,有些接口是要收费的,有些是免费的,但是做了很多限制,比如每天调用的接口次数限制是100次.后来就找到了百度的AI,大家也知道,目前 ...

  5. 百度AI开放平台 情感倾向分析实例以及gbk编码解决

    f=open('test.txt','a+',encoding='utf-8') for index,row in cxzg.iterrows(): text=str(row['text']) tex ...

  6. java通过百度AI开发平台提取身份证图片中的文字信息

    废话不多说,直接上代码... IdCardDemo.java package com.wulss.baidubce; import java.io.BufferedReader; import jav ...

  7. 百度 LBS 开放平台,开发人员众測计划正式启动

    Hi各位亲爱滴开发人员:   你是否以前-- 期望第一时间率先接触到百度LBS开放平台的最新功能? 期望被邀请作为最最尊贵的首批试用志愿者感受志愿者的特权? 期望自己的意见被产品经理採纳.优化功能.从 ...

  8. 腾讯AI开放平台的使用

    一.腾讯AI开放平台 https://ai.qq.com/ 二.腾讯AI平台支持的功能 三.签名机制 1.计算步骤 用于计算签名的参数在不同接口之间会有差异,但算法过程固定如下4个步骤. 1.将< ...

  9. 微信小程序,天气预报(百度地图开放平台API)

    小程序看似一种全新的东西,但好在基本上就是曾经HTML,CSS,JS的一个微变版本. 语法和之前一样.只是一些用法和名字(标签)发生了一些变化. 小程序主要就四种扩展名的文件:js,json,wxml ...

随机推荐

  1. 题解-Quantifier Question

    Quantifier Question 有长度为 \(n\) 的序列 \(x\{n\}\),有 \(m\) 个条件 \((j_i,k_i)\).有 \(n\) 个待定的条件符 \(Q_i\in\{\f ...

  2. 8、Spring Cloud Zuul

    1.Zuul简介 Zuul包含了对请求的路由和过滤两个最主要的功能. 路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础. 过滤器功能则负责对请求的处理过程进行干预,是实现请 ...

  3. HashMap 中 Key 类型的选择

    什么对象可以作为HashMap的key值? 从HashMap的语法上来讲,一切对象都可以作为Key值.如:Integer.Long.String.Object等.但是在实际工作中,最常用的使用Stri ...

  4. 双向数据绑定 v-model

    双向数据绑定 就是既可以从页面传到数据也可以从数据到页面 初始运行结果为: 在输入框 更改数据 相应的输入框上的也会相对改变 然后再试试利用控制台更改数据 可以看到数据也被改变了 而且输入框中的内容也 ...

  5. db2常用操作

    1. db2建立远程节点编目及删除 db2 catalog tcpip node nodeName remote remoteIp server remotePort db2 list node di ...

  6. Flink批处理读取Hive写入MySql

    把hive 表stu77 的数据写入 mysql 表test_stu 中. 中间可以加自己的逻辑. import org.apache.flink.table.api.EnvironmentSetti ...

  7. 让你轻松掌握 Python 中的 Hook 钩子函数

    1. 什么是Hook 经常会听到钩子函数(hook function)这个概念,最近在看目标检测开源框架mmdetection,里面也出现大量Hook的编程方式,那到底什么是hook?hook的作用是 ...

  8. MVC中使用AutoMapper

    参考博文 https://www.cnblogs.com/fred-bao/p/5700776.html 前言 通常在一个应用程序中,我们开发人员会在两个不同的类型对象之间传输数据, 通常我们会用DT ...

  9. PHP7.4.3的BUG导致微信公众号CURl上传文件的412错误

    https://segmentfault.com/q/1010000021407039 升级PHP就好了 https://segmentfault.com/q/1010000021407039

  10. [从源码学设计]蚂蚁金服SOFARegistry之Data节点变更

    [从源码学设计]蚂蚁金服SOFARegistry之Data节点变更 目录 [从源码学设计]蚂蚁金服SOFARegistry之Data节点变更 0x00 摘要 0x02 引子 0x03 业务范畴 3.1 ...