天天看點

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()

繼續閱讀