Android安卓-UI自动打卡Appium+PO+Pytest
工厂类实例化
原因是因为之前,根据每个page页面,都要实例化一次页面的driver,所有将所有页面写在同一py文件上统一管理
将【某个页面的】driver实例化以后可以多次使用
# self.open_page = OpenPage(self.driver)
# self.open_page2 = OpenPage2(self.driver)
# self.open_page3 = OpenPage3(self.driver)
# self.open_page4 = OpenPage4(self.driver)
引入工厂类,每次只需要多写一个方法就可以了,变得只是你引入的page文件,和对应的driver
"""页面工厂方法"""
# 封装所有实例方法
from pages.open_page import OpenPage
class PageFactory(object):
def __init__(self, driver):
self.driver = driver
def open_page(self):
"""
打卡页面
:return:打卡页面对象OpenPage
"""
return OpenPage(self.driver)
ModuleNotFoundError:No module named ‘page’
解决在黑窗口中报错
在根目录下创建空文件并命名为:conftest.py
重新再执行pytest 正常
工厂类实例化后代码改写
import time
import pytest
from pages.open_page import OpenPage
from pages.page_factory import PageFactory
from utils import init_driver
class TestSetting(object):
@pytest.fixture(autouse=True)
def driver_func(self):
# 实例化对象
self.driver = init_driver()
# 将【某个页面的】driver实例化以后可以多次使用
# self.open_page = OpenPage(self.driver)
# 引入工厂模式获取对象
self.page_factory = PageFactory(self.driver)
yield
# 等待3秒
time.sleep(5)
# 退出驱动对象
self.driver.quit()
def test_open(self):
# 引入工厂模式
# self.page_factory.click_cancel()
self.page_factory.open_page_factory().click_workspace()
self.page_factory.open_page_factory().click_checkin()
self.page_factory.open_page_factory().click_login()