Files
AppAutoTest/core/base_page.py
CNWei f1d1a5d35f feat: 移除DDT模式的支持,改用POM模式
- 删除 data_loader 数据驱动加载器。
- 删除 test_keyword_sample 测试执行代码
- 新增 base_page

[DDT模式极大的限制了灵活性,增加了代码的编写难度,另外项目使用者都会编码故而转用只针对POM模式进行优化]
2026-01-26 17:51:47 +08:00

45 lines
1.3 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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)