我有很长的测试场景,我应该通过结帐(几页)。
和 firefox 启动每个方法。但是我需要在所有页面中使用第一个(第一个)驱动程序实例。
问题:我可以通过所有方法只获取和使用一个驱动程序实例吗?
类 TestHomePage():
@pytest.yield_fixture(autouse=True)
def driver(self):
_driver=webdriver.Firefox()
_driver.maximize_window()
yield _driver
_driver.quit()
def test_title(self, driver):
driver.get('http://website.com/index.html')
assert('Home' in driver.title)
sleep(0.5)
def test_item1(self, driver):
...
def test_item2(self, driver):
...
最佳答案
您应该可以使用 yield_fixture(autouse=True, scope="session")
在整个测试过程中只创建一个实例。见https://pytest.org/latest/fixture.html#sharing-a-fixture-across-tests-in-a-module-or-class-session了解更多信息。
关于selenium-webdriver - 如何防止每次启动新方法时 py.test 运行新的 webdriver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30914403/