zoukankan      html  css  js  c++  java
  • python实现获取登录验证码图片

      自动化测试登录页面一般都会存在验证码校验问题,大部分童鞋都是直接把验证码校验关闭掉,下面记录的是如何获取验证码图片的方法:

    1.首先获取登录页面图片;

    2.确定验证码坐标和大小;

    3.通过坐标和尺寸在登录页面上截取验证码图片;

    4.截取的验证码图片保存为新的文件。

    代码实现如下:

    from selenium import webdriver
    import time
    from PIL import Image
    
    file_name = "C:/test.png"
    
    driver = webdriver.Chrome()
    driver.get("********")
    driver.maximize_window()
    time.sleep(2)
    
    # 1.登录页面截图并保存在C:/test.png
    driver.save_screenshot(file_name)
    # 2.获取图片验证码坐标和尺寸
    code_element = driver.find_element_by_xpath(".//*[@id='verifyCodeImg']")
    left = code_element.location['x']
    top = code_element.location['y']
    right = code_element.size['width']+left
    height = code_element.size['height']+top
    im = Image.open(file_name)
    # 3.截取图片验证码
    img = im.crop((left, top, right, height))
    # 4.截取的验证码图片保存为新的文件
    img.save(file_name)
    driver.close()

      注:以上方法不是并非能精准获取验证码图片,比如登录验证了嵌套在iframe中,此时的验证码相对坐标位置就是iframe区域,这里就需要先截取整个iframe区域(iframe.png),然后根据验证码坐标位置在获取的iframe图片(iframe.png)上进行截取,最终获得图片验证码;

     验证码识别请查看下一篇博文:Python调用百度OCR识别API实现文字图片识别

  • 相关阅读:
    mysql source命令可以导入比较大的文件
    开源 小程序
    React-Native项目在Android真机上调试
    react-native中长度单位换算
    webpack 去console
    微信H5移动端真机调试--vConsole
    记录
    盘点ES7、ES8、ES9、ES10新特性
    Mach-o可执行文件简述
    堆排序算法
  • 原文地址:https://www.cnblogs.com/jiahm/p/13533352.html
Copyright © 2011-2022 走看看