提问人:Andrii_ 提问时间:10/26/2023 更新时间:10/26/2023 访问量:17
如何将 python fixture 传递到我的类中以初始化 webdriver?
How can I pass python fixture into my class to initialize webdriver?
问:
目的是根据命令行的输入,在 chrome 或 firefox 中通过 pytest 运行测试。问题是我收到错误
猜猜为什么会发生这种情况以及我应该如何更正我的代码?
最混乱的文件是HomePage.__init__() missing 1 required positional argument: 'driver'
@pytest.fixture
def platform(request):
plat = request.config.getoption('platform').lower()
if plat not in ['chrome', 'firefox']:
raise ValueError('value must be chrome or firefox')
return plat
@pytest.fixture
def driver(platform):
driver = webdriver.Chrome() if platform == 'chrome' else webdriver.Firefox()
yield driver
driver.quit()
@pytest.fixture
def home(driver):
return HomePage(driver)
另一个文件中的类是
class HomePage(object):
def __init__(self, driver):
self.driver = driver
self.driver.maximize_window()
测试是
def test_go_to_page(home):
答: 暂无答案
评论