首页 > 其他分享 >一、注册输入验证码流程整合-13

一、注册输入验证码流程整合-13

时间:2022-09-29 16:35:02浏览次数:53  
标签:13 code name 流程 driver 验证码 element user find

#coding=utf-8
# 浏览器驱动包
from selenium import webdriver

# 引入随机数生成包
import random

# 使用pip库进行图片解析包/取图片的包
from PIL import Image

# python3.6.5
# 需要引入requests包 :运行终端->进入python/Scripts ->输入:pip install requests
from ShowapiRequest import ShowapiRequest

# Chrome浏览器的驱动
driver = webdriver.Chrome()

# 加载指定url界面
driver.get("http://www.5itest.cn/register")

# 使浏览器界面最大化
driver.maximize_window()

# 保存整个页面的图片
driver.save_screenshot("D:/imooc/imooc10.png")

# 通过获取验证码的id,计算code_element的元素
code_element = driver.find_element_by_id("getcode_num")

# 通过code_element的元素,计算code_element元素的坐标
# 获取的格式是:{"x":123,"y":345}
print(code_element.location)

# 左边点的坐标
left = code_element.location['x']*1.75
top = code_element.location['y']*1.75

# 右边点的坐标
right = code_element.size['width']*1.75+left
height = code_element.size['height']*1.75+top

# 打开一张图片,并命名为一个对象
im = Image.open("D:/imooc/imooc10.png")

# 按照一个坐标进行裁剪
img = im.crop((left,top,right,height))

# 保存裁剪后的图片
img.save("D:/imooc/imooc_crop10.png")

# 循环一次,指定生成随机的用户名、邮箱地址、密码
for i in range(1):
    user_name = ''.join(random.sample('1234567890abcdefg',5))
    user_emil = user_name +"@163.com"
    user_password = user_name

# 加载邮箱地址    
driver.find_element_by_id("register_email").send_keys(user_emil)

# 加载用户名
user_name_element_node = driver.find_elements_by_class_name("controls")[1]
user_element = user_name_element_node.find_element_by_class_name("form-control")
user_element.send_keys(user_name)

# 加载密码
driver.find_element_by_name("password").send_keys(user_password)


# 这里的api不变
# 需要缴费
# 修改my_appId = 1182042
# 修改my_appSecret = 523bfa72c8f64177b7a17f7a2f02c462
r = ShowapiRequest("http://route.showapi.com/184-1","1182042","523bfa72c8f64177b7a17f7a2f02c462" )

# 图片存放地址
r.addFilePara("image", r"D:/imooc/imooc_crop10.png")

# 代表识别几位数的图片,即多少位数的字。
r.addBodyPara("typeId", "35")

# r.addBodyPara("convert_to_jpg", "0")
res = r.post()

text = res.json()['showapi_res_error']['err']

print(res.text) # 返回信息

# 输入验证码
driver.find_element_by_id('captcha_code').send_keys(res.text)

# 延迟10s
#time.sleep(10)
# 关闭进程
#driver.close()

 

标签:13,code,name,流程,driver,验证码,element,user,find
From: https://www.cnblogs.com/jieqiong1755/p/16741888.html

相关文章

  • 13. HTML-- 注释的写法(附带示例)
    1.前言HTML注释主要用来对文档中的代码进行解释说明,注释也是代码的一部分,但浏览器会自动忽略注释的内容,所以用户在网页中是看不到注释的。我们在编写代码时应该善用注释......
  • SpringSecurity流程图
    ......
  • 13 刘欣晨 2022.9.22
    实验一 项目名称:     输出每日一贴                       importdatetimemot=["今天星期一:\n坚持下去不是因为我很坚强,而是因为我别......
  • 程序结构和流程控制
    ifif单选择结构if(布尔表达式){//布尔表达式为true时执行的语句}if双选择结构if(){//布尔表达式为true执行的语句}else{//布尔表达式为false执行的语句}if......
  • Docker基础知识 (13) - 部署 MariaDB 集群 (一) | 主从复制
    MariaDB数据库是MySQL的一个分支,主要由开源社区维护,采用GPL授权许可MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方......
  • Java流程控制08(练习题)
    1.计算0到100之间的奇数和偶数的和packagecom.zhangyi.Cycle;//计算0到100之间的奇数和偶数的和publicclassCycleDemo02{publicstaticvoidmain(String[]ar......
  • PCIE背景知识学习(13)
    PCIE背景知识学习(13)CommonRefclk(SharedRefclk)ArchitectureCommonRefclk(SharedRefclk)Architecture的示意图如下图所示,  这种参考时钟架构是Spec推荐使用......
  • vs2013添加单元测试
    vs2013添加单元测试要运行vs2013单元测试,那么打开VS2013选择工具(菜单)-扩展和更新,搜索并安装UnitTestGenerator  InstallUnitTestGenerator 如果不安装......
  • UPD: Update requests in status INIT in SM13
    2802241-UPD:UpdaterequestsinstatusINITinSM13前记SymptomInSM13updaterequestsinstatusINITcanbeseenforever.Theydon'tgetprocesse......
  • SystemCall系统调用流程
    用户空间bionic/libc/kernel/uapi/asm-generic/unistd.h系统调用号的宏定义#define__NR_sysinfo179bionic/libc/arch-arm64/syscalls/sysinfo.S汇编定义相关函数......