- 删除 data_loader 数据驱动加载器。 - 删除 test_keyword_sample 测试执行代码 - 新增 base_page [DDT模式极大的限制了灵活性,增加了代码的编写难度,另外项目使用者都会编码故而转用只针对POM模式进行优化]
45 lines
1.3 KiB
Python
45 lines
1.3 KiB
Python
#!/usr/bin/env python
|
||
# coding=utf-8
|
||
|
||
"""
|
||
@author: CNWei,ChenWei
|
||
@Software: PyCharm
|
||
@contact: t6g888@163.com
|
||
@file: base_page
|
||
@date: 2026/1/26 17:33
|
||
@desc:
|
||
"""
|
||
import logging
|
||
from typing import Type, TypeVar
|
||
from core.driver import CoreDriver
|
||
# 定义一个泛型,用于类型推断(IDE 依然会有补全提示)
|
||
T = TypeVar('T', bound='BasePage')
|
||
logger = logging.getLogger(__name__)
|
||
class BasePage:
|
||
def __init__(self, driver: CoreDriver):
|
||
self.driver = driver
|
||
# 这里放全局通用的 Page 属性和逻辑
|
||
# --- 页面工厂:属性懒加载 ---
|
||
# 这样你可以在任何页面直接通过 self.home_page 访问首页
|
||
@property
|
||
def home_page(self):
|
||
from page_objects.home_page import HomePage
|
||
return HomePage(self.driver)
|
||
|
||
@property
|
||
def login_page(self):
|
||
from page_objects.login_page import LoginPage
|
||
return LoginPage(self.driver)
|
||
|
||
# 封装一些所有页面通用的元动作
|
||
def get_toast(self, text):
|
||
return self.driver.is_visible("text", text)
|
||
|
||
def to_page(self, page_class: Type[T]) -> T:
|
||
"""
|
||
通用的页面跳转/获取方法
|
||
:param page_class: 目标页面类
|
||
:return: 目标页面的实例
|
||
"""
|
||
logger.info(f"跳转到页面: {page_class.__name__}")
|
||
return page_class(self.driver) |