selenium自动化 | 借助百度AI开放平台识别验证码登录职教云
#通过借助百度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开放平台识别验证码登录职教云的更多相关文章
- 百度AI开放平台,语音识别,语音合成以及短文本相似度
百度AI开放平台:https://ai.baidu.com/ 语音合成 from aip import AipSpeech APP_ID=" #'你的 App ID' API_KEY=&qu ...
- 百度AI开放平台- API实战调用
百度AI开放平台- API实战调用 一. 前言 首先说一下项目需求. 两个用户,分别上传了两段不同的文字,要计算两段文字相似度有多少,匹配数据库中的符合条件的数据,初步估计列出来会有60-1 ...
- 基于百度AI开放平台的人脸识别及语音合成
基于百度AI的人脸识别及语音合成课题 课题需求 (1)人脸识别 在Web界面上传人的照片,后台使用Java技术接收图片,然后对图片进行解码,调用云平台接口识别人脸特征,接收平台返回的人员年龄.性别.颜 ...
- 百度AI开放平台 UNIT平台开发在线客服 借助百度的人工智能如何开发一个在线客服系统
这段时间在研究一些人工智能的产品,对比了国内几家做人工智能在线客服的,有些接口是要收费的,有些是免费的,但是做了很多限制,比如每天调用的接口次数限制是100次.后来就找到了百度的AI,大家也知道,目前 ...
- 百度AI开放平台 情感倾向分析实例以及gbk编码解决
f=open('test.txt','a+',encoding='utf-8') for index,row in cxzg.iterrows(): text=str(row['text']) tex ...
- java通过百度AI开发平台提取身份证图片中的文字信息
废话不多说,直接上代码... IdCardDemo.java package com.wulss.baidubce; import java.io.BufferedReader; import jav ...
- 百度 LBS 开放平台,开发人员众測计划正式启动
Hi各位亲爱滴开发人员: 你是否以前-- 期望第一时间率先接触到百度LBS开放平台的最新功能? 期望被邀请作为最最尊贵的首批试用志愿者感受志愿者的特权? 期望自己的意见被产品经理採纳.优化功能.从 ...
- 腾讯AI开放平台的使用
一.腾讯AI开放平台 https://ai.qq.com/ 二.腾讯AI平台支持的功能 三.签名机制 1.计算步骤 用于计算签名的参数在不同接口之间会有差异,但算法过程固定如下4个步骤. 1.将< ...
- 微信小程序,天气预报(百度地图开放平台API)
小程序看似一种全新的东西,但好在基本上就是曾经HTML,CSS,JS的一个微变版本. 语法和之前一样.只是一些用法和名字(标签)发生了一些变化. 小程序主要就四种扩展名的文件:js,json,wxml ...
随机推荐
- linux下为什么每次修改完配置文件之后都需要重新加载配置文件
目录 一.关于inode 二.inode的作用 二.为什么每次修改完服务器配置文件之后,都需要重新加载一下配置文件? 一.关于inode 1.在linux下一切皆文件,linux文件由三部分组成:文件 ...
- 基于Python3.7 Robot Framework自动化框架搭建
一.Robot Framework 和 Selenium 的区别(面试常问) 主流自动化测试框架有Robot Framework 和 Selenium,请根据实际场景选用不同的框架,以下总结各自优缺点 ...
- 自顶向下redis4.0(3)命令与dict
redis4.0的命令 简介 目录 redis4.0的命令 简介 正文 redisCommand与redisCommandTable 初始化命令 执行命令 set指令与字典 参考文献 正文 redis ...
- Docker(四):Docker安装Redis
查找Redis镜像 镜像仓库 https://hub.docker.com/ 下拉镜像 docker pull redis 查看镜像 docker images 创建Redis容器 运行Redis镜像 ...
- react第九单元(propTypes验证)
第九单元(propTypes验证) #课程目标 理解类型验证的必要性 灵活掌握类型验证的使用 #知识点 在给react组件传属性的的时候,我们可以定义属性的类型,此时我们需要下载prop-types这 ...
- js下 Day05、DOM案例
一.简易购物车 效果图: 功能思路分析: 功能一:数量加减 \1. 找到所有的加号按钮,循环绑定点击事件.点击加号时让对应的数量+1 (找清楚加号和数量的关系,让数量标签的内容++) \2. 找到所有 ...
- Spring Data JPA的基本学习之了解
Spring Data JPA 是 什 么 可以理解为JPA规范的再次封装抽象,底层还是使用了Hibernate的JPA技术实现,引用JPQL(Java Persistence Query Langu ...
- 面试官: ShardingSphere 学一下吧
文章目录 目录 一.ShardingSphere简介 二.Sharding-JDBC 2.1 Sharding-JDBC实现水平分表 2.2 Sharding-JDBC实现水平分库 2.3 Shard ...
- Windows下python+allure的下载、安装、配置与使用
下载安装allure 1.Windows和mac均可选择从官网下载,下载地址: https://repo.maven.apache.org/maven2/io/qameta/allure/allure ...
- Blogs添加横幅滚动条
#1.定义CSS样式 .box { width: 100%; margin: 0 auto; /* border: 0.2px solid gray; */ overflow: hidden; } . ...