软件测试学习笔记丨UI_OCR自动化获取图片验证码

53 阅读1分钟

UI_OCR自动化获取图片验证码

代码

ocr_code.py

from time import sleep

import easyocr
import requests


class OcrCode:

    @classmethod
    def get_by_ocr(cls, img_url):
        # 使用requests 发请求拿到图片结果
        result = requests.get(img_url, verify=False)
        # 保存图片到本地
        with open("code.png", "wb") as f:
            f.write(result.content)
        sleep(1)
        # 实例化easyocr
        ocr = easyocr.Reader(['ch_sim', 'en'])
        # 识别图片内容,并去掉空格
        code = ocr.readtext("code.png")[0][1].replace(" ", "")
        print(f"识别到的验证码为: {code}")
        return code

test_ocr.py

from time import sleep

from selenium import webdriver
from selenium.webdriver.common.by import By

from L5.OCRCode.ocr_code import OcrCode


class TestCode:

    def setup_class(self):
        self.driver = webdriver.Chrome()
        self.driver.implicitly_wait(10)
        # 打开页面
        self.driver.get("https://vip.ceshiren.com/#/ui_study/code")

    def teardown_class(self):
        self.driver.quit()

    def test_code(self):
        # 获取验证码图片链接
        img_url = self.driver.find_element(By.CSS_SELECTOR, ".code1:nth-child(2) img").get_attribute("src")
        # 获取验证码内容
        code = OcrCode.get_by_ocr(img_url)
        # 输入验证码
        self.driver.find_element(By.CSS_SELECTOR, ".code1:nth-child(2) input").send_keys(code)
        # 点击确定
        self.driver.find_element(By.CSS_SELECTOR, ".code1:nth-child(2) button").click()
        # 断言验证码是否正确
        sleep(1)
        text = self.driver.find_element(By.CSS_SELECTOR, ".el-message p").text
        print(text)
        assert text == "验证成功"

霍格沃兹的测试管理班是专门面向测试与质量管理人员的一门课程,通过提升从业人员的团队管理、项目管理、绩效管理、沟通管理等方面的能力,使测试管理人员可以更好的带领团队、项目以及公司获得更快的成长。提供 1v1 私教指导,BAT 级别的测试管理大咖量身打造职业规划。

微信图片_20240122172740.png