python用selenium 验证码图片_Python+Selenium----处理登录图片验证码

1.说明

在做自动化测试的时候,经常会遇到登录,其中比较麻烦的就是验证码的处理,现在比较常用的图形验证码,每次刷新,得到的验证码不一致,所以,一般来说,获取验证码图片有两种方式:

(1)拿到验证码的图片链接:src=”http://cli.cncaq.com//login/to_getvericode/52”,但是这种方式有时候行不通。因为有时候会发现当前的验证码和通过提取出来的url链接打开的验证码,内容是不一样的,其内容不断发生变化。

(2)利用selenium先进行可视区域的截屏,然后定位验证码元素的位置以及大小,然后利用Image(PIL模块中)进行裁剪,得到验证码图片,然后送往验证码模块或者打码平台处理。

2.代码

方法一:获得验证码图片地址,下载到本地,然后,进行图文识别,得到验证码中的内容(但是因为同一个地址,每次访问获得的验证码也不一样,所以,当前场景并不适用)

import random #导入 random(随机数) 模块

from selenium_demo3_test.utils.file import * #引入下载图片函数所在的py文件

yanzhengma_src = driver.find_element_by_id('imgvercodeLogin').get_attribute('src') #根据验证码img的id获得元素,并使用get_attribute方法得到图片的地址

img_url = yanzhengma_src+'.png' #根据上图看到,我当前的地址 /52结尾,所以,我这边添加后缀,方便稍后下载

file_name = random.randint(0, 100000) #生成一个100000以内的随机数

file_path = 'img\\login' #下载验证码图片的时候的保存地址,默认为当前脚本运行目录下的file_path文件夹中

save_img(img_url, file_name,file_path) #下载图片(调用的其它文件中已经写好的下载方法)_要下载的文件路径,保存的文件名,保存路径

下载文件方法

你可能感兴趣的:(python用selenium,验证码图片)