一、注册流程梳理及代码封装-14

# 编码
# coding=utf-8
# 浏览器驱动包 from selenium import webdriver # 时间包 import time # 引入随机数生成包 import random # 使用pip库进行图片解析包/取图片的包 from PIL import Image # 获取api解析图片包 from ShowapiRequest import ShowapiRequest # Chrome浏览器的驱动 # driver的实例化 driver = webdriver.Chrome() # 浏览器的初始化 def driver_init(): # 加载指定url界面 driver.get("http://www.5itest.cn/register") # 最大化窗口 driver.maximize_window() time.sleep(5) # 传元素的id def get_element(id): element = driver.find_element_by_id(id) return element # 获取随机数 def get_range_user(): user_info = ''.join(random.sample('1234567890abcdefghijklmn',8)) return user_info # 获取图片 def get_code_image(file_name): # 保存整个页面的图片 driver.save_screenshot(file_name) # 通过获取验证码的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(file_name) # 按照一个坐标进行裁剪 img = im.crop((left,top,right,height)) # 保存裁剪后的图片 img.save(file_name) # 解析图片,获取验证码 def code_online(file_name): # 这里的api不变 # 需要缴费 # 修改my_appId = 1182042 # 修改my_appSecret = 523bfa72c8f64177b7a17f7a2f02c462 # https://www.showapi.com/apiGateway/view/184?tab=1 r = ShowapiRequest("http://route.showapi.com/184-1","1182042","523bfa72c8f64177b7a17f7a2f02c462" ) # 图片存放地址 r.addFilePara("image", file_name) # 代表识别几位数的图片,即多少位数的字。 r.addBodyPara("typeId", "35") # r.addBodyPara("convert_to_jpg", "0") res = r.post() text = res.json() # ['showapi_res_error']['err'] # 返回验证码 return text # 运行主程序 def run_main(): user_name = get_range_user() user_email = user_name + "@163.com" file_name = "D:/imooc/test01.png" # 浏览器的初始化 driver_init() # 加载邮箱地址 get_element("register_email").send_keys(user_email) # 加载用户名 get_element("register_nickname").send_keys(user_name) # 加载密码 get_element("register_password").send_keys("111111") # 获取图片 get_code_image(file_name) # 解析图片 text = code_online(file_name) get_element("captcha_code").send_keys(text) get_element("register-btn").click() time.sleep(5) driver.close() run_main()

 

Windows PowerShell
版权所有 (C) Microsoft Corporation。保留所有权利。

尝试新的跨平台 PowerShell https://aka.ms/pscore6

PS D:\imooc\selenium> python .\register_code.py

 

posted @ 2022-10-09 10:50  酱汁怪兽  阅读(51)  评论(0)    收藏  举报