test_login.py 9.47 KiB
import allure
import pytest
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from common.read_config import ReadConfig
from test_login.page_login import PageLogin
from common.verifycode import VerifyCode
from common import constant
from common.logger import log
@allure.feature('登录模块')
class TestLogin(object):   
    @pytest.fixture(scope='function', autouse=True)
    def housework(self, browser):
        # 驱动器从fixture传来
        self.driver = browser
        # 执行案例前统一获取页面元素操作方法
        self.page_login = PageLogin(self.driver)
        # 从配置文件中获取url
        self.url = ReadConfig().get('HOST', 'URL')
        self.page_login.open_page(self.url)
    """登录成功案例"""
    @allure.story('登录成功案例-点击登录')
    def test_login_success_click(self):
        # 获取账号输入元素
        account_element = self.page_login.get_account()
        # 密码
        password_element = self.page_login.get_password()
        # 验证码
        verify_input_element = self.page_login.get_verify_code()
        # 输入账号密码,账号密码从配置文件中来
        self.page_login.input_text(account_element, ReadConfig().get('ACCOUNT-PURCHASE', 'ACCOUNT'))
        self.page_login.input_text(password_element, ReadConfig().get('ACCOUNT-PURCHASE', 'PASSWORD'))
        # 获取验证码
        # 先获取验证码图片元素
        verify_code_element = self.page_login.get_verify_image()
        # 获取验证码中的文字信息
        verify_code_text = VerifyCode(verify_code_element, self.driver).indentify_verify_image_guke()
        # 填充验证码文字
        self.page_login.input_text(verify_input_element, verify_code_text)
        # 获取登录按钮
        login_button_element = self.page_login.get_login_button()
        # 点击登录
        self.page_login.single_click(login_button_element)
        # 判断登录是否成功,登录成功会切换到另外一个页面,通过页面title来判断是否切换成功
        assert self.page_login.get_window_title() == constant.LOGIN_SUCCESS
    '''验证码错误案例'''
    @allure.story('登录验证码错误案例')
    def test_login_verify_code_error(self):
        # 获取账号输入元素
        account_element = self.page_login.get_account()
        # 密码
        password_element = self.page_login.get_password()
        # 验证码
        verify_input_element = self.page_login.get_verify_code()
        # 输入账号密码,账号密码从配置文件中来
        self.page_login.input_text(account_element, ReadConfig().get('ACCOUNT-PURCHASE', 'ACCOUNT'))
        self.page_login.input_text(password_element, ReadConfig().get('ACCOUNT-PURCHASE', 'PASSWORD'))
        # 获取验证码
        # 输入错误的验证码
        error_code = '1234'
        self.page_login.input_text(verify_input_element, error_code)