Python+selenium 将登录操作设置为公共模块

在使用Python+selenium搭建自动化测试框架时,发现有个问题,就是每个testcase执行都是在登录的前提下才能运行的,根据网上介绍的各种方法,发现用setUpClass或者用setUpModule均不能解决这个问题。因为我的testcase是不在一个文件下的,我可能写在不同的文件中。所以要实现这个在登录后运行各个testcase,就必须将登录操作设置为公共模块,这样每个testcase都可以去调用这个模块。

登录操作代码

from pageobjects.login_page import LoginPage
import time

class TestLogin():
#因为登录操作是每个测试用例都要先执行的操作,所以将登录操作写成一个公共模块,每个测试用例都可以调用,可实现在每个testcase中先执行登录操作

    def login(self,driver):
        #登录操作
        time.sleep(3)
        loginpage=LoginPage(driver)
        loginpage.type_name("admin")
        loginpage.type_pw("123456")
        loginpage.type_code(1111)
        loginpage.click_login_btn()
        loginpage.get_windows_img()
        time.sleep(5)
        return driver

在testcase中调用登录模块    

import unittest
from framework.browser_Engine import BrowserEngine
from pageobjects.index_page import IndexPage
from testsuits.test_login import TestLogin
from pageobjects.account_list_page import AccountListPage

class TestAccountList(unittest.TestCase):

    @classmethod
    def setUpClass(cls):
        browse=BrowserEngine(cls)
        cls.driver=browse.open_browser(cls)
    
    @classmethod
    def tearDownClass(cls):
        cls.driver.quit()

    def test_account_list(self):
        
        driver=self.driver
        TestLogin().login(driver) #调用登录模块
        indexpage=IndexPage(driver)
        #验证系统首页是否有显示
        element=indexpage.findelement("xpath=>/html/body/div/div[1]/ul/li[1]/a")
        
        try:
            assert "系统首页" == element.text
            print("Test success")
        except Exception:
            print("Failed")
        
        #indexpage.click_acc_mag() #点击账号管理
        #indexpage.get_windows_img()

你可能感兴趣的:(问题总结,python+selenium)