01需求分析
1.打开一个chrome浏览器
2.输入论坛的网址: http://114.116.2.138:8090/forum.php
3.输入用户名admin
4.输入密码123456
5.点击登录
6.输入验证码
7.再点击登录
02准备工作
selenium环境搭建
参考地址: https://blog.csdn.net/python_jeff/article/details/139613463
03操作步骤
第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源码
-
八个定位方法:id、css、xpath是最常用的
-
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步:点击弹出框的登录
-
跟前面一样的,不再赘述