四时宝库

程序员的知识宝库

[笔记]自动化中破解验证码操作

一.需求分析

1.打开一个chrome浏览器
2.输入论坛的网址http://114.116.2.138:8090/forum.php
3.输入用户名admin
4.输入密码123456
5.点击登录
6.输入验证码
7.再点击登录

二.准备工作

selenium环境搭建
参考地址:
https://blog.csdn.net/python_jeff/article/details/139613463

三.操作步骤

第1步:导入webdriver模块

  • 前提: 安装好selenium 环境
  • 需要了解:python导入语法

第2步: 打开chrome浏览器

  • 用webdriver模块的Chrome类,对它实例化
  • Chrome首字符大写的,往往是Python中的类名
  • Chrome()这是一个实例化的过程

第3步:输入网址

  • 字面翻译:在打开的浏览器driver上.去输入get一个网址

http://114.116.2.138:8090/forum.php

  • get是HTTP的一种请求方式(引申:学接口的要去懂更多的HTTP请求方式,POST/DELETE/PUT)
  • url的标准格式示例

第4步:输入用户名|密码|点击登录

  • 要会chrome开发者工具
  • 要有HTML的基础
  • find_element源码
  • 八个定位方法:idcssxpath是最常用的 css参考:

https://www.w3school.com.cn/cssref/css_selectors.asp

  • xpath参考:https://www.w3school.com.cn/xpath/xpath_axes.asp
  • WebElement 是ind_element的返回值,可以在这个元素上输入: send_keys 点击:click 获取文本:text

第5步:验证码输入

获取验证码图片

  • 注意用到了css定位的[属性^=属性开头的值]的语法
  • python读写文件的open方法wb是write,bytes
  • ele_pic.screenshot_as_png:就是当前这个元素的bytes数据
  • 首次运行遇到错误
  • 点击了登录后,弹出这个提示,获取验证码,无法定位
  • 点击操作往往会产生新的页面,新的页面加载的时候会出现延迟,这个时候等待就需要加入!!
  • 引申:selenium的等待强制:sleep隐式:implicitly_wait显式等待:

分析验证码的数据

  • ddddocr的用法导入ddddocr实例化用classiication获取bytes数据的文本


输入验证码

  • 跟前面一样的,不再赘述


第6步:点击弹出框的登录

  • 跟前面一样的,不再赘述


发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接