import unittest,time,pytesseract
from common import getURLParams
from selenium import webdriver
from PIL import Image,ImageEnhance
class LoginWebTest(unittest.TestCase):
def setUp(self):
self.web_url = getURLParams.web_url
self.driver = webdriver.Chrome()
def tearDown(self):
print("end")
def readVeriCode(self,driver):
# 截图或验证码图片保存地址
screenImg = "F:\工作\screenImg.png"
# 浏览器页面截屏
driver.get_screenshot_as_file(screenImg)
# 定位验证码位置及大小
location = driver.find_element_by_id('verify_code').location
size = driver.find_element_by_id('verify_code').size
left = location['x']
top = location['y']
right = location['x'] + size['width']
bottom = location['y'] + size['height']
# 从文件读取截图,截取验证码位置再次保存
img = Image.open(screenImg).crop((left, top, right, bottom))
img = img.convert('L') # 转换模式:L | RGB
img = ImageEnhance.Contrast(img) # 增强对比度
img = img.enhance(2.0) # 增加饱和度
img.save(screenImg)
# 再次读取识别验证码
img = Image.open(screenImg)
code = pytesseract.image_to_string(img)
# code= pytesser.image_file_to_string(screenImg)
print(code.strip())
return code.strip()
def test_login(self):
driver=self.driver
driver.get(self.web_url)
driver.find_element_by_id("loginName").send_keys("admin")
driver.find_element_by_id("passWord").send_keys("xxxx")
code=self.readVeriCode(driver)
driver.find_element_by_id("number").send_keys(code)
driver.find_element_by_id("loginBtn").click()
time.sleep(5)
info=driver.find_element_by_class_name("text-success").text
print("info:",info)
self.assertEqual(info,"欢迎使用xxxxxx系统","登录失败")