pytest,使用拆卸退出为每个测试文件初始化 webdriver
pytest, initialize webdriver for each test file with teardown quit
测试模块中的当前部分代码:
def test_01():
driver.get('https://www.google.com')
竞赛代码:
import pytest
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
@pytest.fixture(autouse=True)
def browser():
driver = webdriver.Chrome(executable_path=r"C:\webdrivers\chromedriver.exe")
driver.implicitly_wait(5)
wait = WebDriverWait(driver, 10)
driver.maximize_window()
yield
driver.quit()
结果:“E NameError:名称'driver'未定义”
目标结果:在没有 class 的情况下初始化 webdriver,将 webdriver 作为驱动程序设置到每个测试函数中,运行 使用它运行并使用 fixtures 后置条件退出比赛。我有很多测试文件,所以我应该做一次。
我也试过 return 来自 fixture 的变量,但据我所知,测试函数仍然需要有用于 fixture 的变量,这对我来说看起来是错误的。例如:fixture - return x, testfunction(fixture): x = fixture.它仍然不适用于 webdriver\driver(或者更确切地说,我没有弄明白)。
您的测试函数需要将夹具作为参数,这是问题的第一部分。
例如:
def test_01(driver):
driver.get('https://www.google.com')
但是您还没有 driver
灯具,只有一个名为 browser
的灯具,因此您需要更改灯具的名称:
@pytest.fixture(autouse=True)
def driver(request):
...
最后,fixture需要return驱动程序,这样你就可以使用它了。
@pytest.fixture(autouse=True)
def driver(request):
...
yield driver
...
测试模块中的当前部分代码:
def test_01():
driver.get('https://www.google.com')
竞赛代码:
import pytest
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
@pytest.fixture(autouse=True)
def browser():
driver = webdriver.Chrome(executable_path=r"C:\webdrivers\chromedriver.exe")
driver.implicitly_wait(5)
wait = WebDriverWait(driver, 10)
driver.maximize_window()
yield
driver.quit()
结果:“E NameError:名称'driver'未定义”
目标结果:在没有 class 的情况下初始化 webdriver,将 webdriver 作为驱动程序设置到每个测试函数中,运行 使用它运行并使用 fixtures 后置条件退出比赛。我有很多测试文件,所以我应该做一次。
我也试过 return 来自 fixture 的变量,但据我所知,测试函数仍然需要有用于 fixture 的变量,这对我来说看起来是错误的。例如:fixture - return x, testfunction(fixture): x = fixture.它仍然不适用于 webdriver\driver(或者更确切地说,我没有弄明白)。
您的测试函数需要将夹具作为参数,这是问题的第一部分。
例如:
def test_01(driver):
driver.get('https://www.google.com')
但是您还没有 driver
灯具,只有一个名为 browser
的灯具,因此您需要更改灯具的名称:
@pytest.fixture(autouse=True)
def driver(request):
...
最后,fixture需要return驱动程序,这样你就可以使用它了。
@pytest.fixture(autouse=True)
def driver(request):
...
yield driver
...