测试模块中的当前代码部分:
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\1\chromedriver.exe")
driver.implicitly_wait(5)
wait = WebDriverWait(driver, 10)
driver.maximize_window()
yield
driver.quit()结果:"E NameError:名称‘驱动程序’未定义“
目标结果:不使用类初始化and驱动程序,将驱动程序设置为每个测试函数中的驱动程序,使用它运行函数,并使用固定条件退出。我有很多测试文件,这就是为什么我应该这么做一次。
我也尝试过从夹具中返回变量,但正如我所理解的那样,测试函数仍然需要有参数,对于我来说,它看起来是错误的。例如:治具-返回x,testfunction(治具):x=治具。它仍然不适用于webdriver\driver (或者更确切地说,我没有搞清楚)。
发布于 2020-09-03 17:10:47
您的测试函数需要将夹具作为参数,这是问题的第一部分。
例如:
def test_01(driver):
driver.get('https://www.google.com')但是您还没有一个driver夹具,只有一个叫做browser,所以您需要更改该夹具的名称:
@pytest.fixture(autouse=True)
def driver(request):
...最后,夹具需要返回驱动程序,以便您可以使用它。
@pytest.fixture(autouse=True)
def driver(request):
...
yield driver
...https://stackoverflow.com/questions/63728411
复制相似问题