这里重新阐述下PageObject设计模式:
PageObject设计模式是selenium自动化最成熟,最受欢迎的一种模式,这里用pytest同样适用
这里直接提供代码:
全局变量
conftest.py
""" conftest.py 全局变量,主要实现以下功能: 1、添加命令行参数broswer, 用于切换不用浏览器 2、全局参数driver调用 """ import pytest from selenium import webdriver def pytest_addoption(parser): ''' 添加命令行参数 --browser ''' parser.addoption( "--browser", action="store", default="firefox", help="browser option: firefox or chrome" ) @pytest.fixture(scope='session') # 以实现多个.py跨文件使用一个session来完成多个用例 def driver(request): '''定义全局driver参数''' name = request.config.getoption("--browser") if name == "firefox": driver = webdriver.Firefox() elif name == "chrome": driver = webdriver.Chrome() else: driver = webdriver.Chrome() print("正在启动浏览器名称: %s" % name) # 需要登陆就调用登陆函数 def fn(): print("当全部用例执行完之后: teardown driver!") driver.quit() request.addfinalizer(fn) return driver
loginpage.py
''' 作者:Caric_lee 日期:2018 '''