1. 程式人生 > 實用技巧 >在ui自動化中,如果有多個case在不同的class 下,要全部執行並且要求只啟動一次瀏覽器頁面,怎麼處理?

在ui自動化中,如果有多個case在不同的class 下,要全部執行並且要求只啟動一次瀏覽器頁面,怎麼處理?

思路通過繼承實現

測試場景:

1.正確訪問頁面

2.錯誤訪問頁面-重定向至預設頁面

3.正確登入

。。。

第一步:

【open.py】

#coding-utf-8
import unittest
from selenium import webdriver

'''
設定全域性配置,其他case繼承使用
'''
class TestOpen(unittest.TestCase):
# wb = webdriver.Chrome()#全域性

#遮蔽chrome訊息提醒
wb = webdriver.ChromeOptions()
prefs = {
'profile.default_content_setting_values':
{
'notifications': 2
}
}
wb.add_experimental_option('prefs', prefs)
wb = webdriver.Chrome(chrome_options=wb)
def setUp(self, driver=wb):
self.driver = driver
self.driver.get("https://www.xxx/login")
self.driver.maximize_window()
self.driver.implicitly_wait(15)
# def tearDownClass(self, driver=dr) -> None:
# self.driver = driver.quit()
#

第二步:

【login.py】

#coding=utf-8
from selenium.webdriver.common.by import By
import time, unittest
import open

# 繼承open.TestOpen 【檔名+類方法】

class TestLogin(open.TestOpen):

def test_login(self):
'''正確登入'''

self.driver.find_element(By.ID, "userEmail").send_keys("com")

self.driver.find_element(By.ID, "userPassword").send_keys("123")
self.driver.find_element(By.CLASS_NAME, "reg_submit").click()

self.driver.find_element(By.CLASS_NAME, "admin-tips").click()
time.sleep(4)


if __name__ == '__main__':
unittest.main()

【以此類推】
說明:由於每一次的繼承會重複之前的步驟,所以在繼承後 可以重寫,業務邏輯