为了账号安全,请及时绑定邮箱和手机立即绑定

pytest,使用拆解退出为每个测试文件初始化 webdriver

pytest,使用拆解退出为每个测试文件初始化 webdriver

哔哔one 2023-07-11 16:58:36
测试模块中的当前部分代码:def test_01():    driver.get('https://www.google.com')测试代码:import pytestfrom selenium import webdriverfrom 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:名称“驱动程序”未定义”目标结果:初始化没有类的 webdriver,将 webdriver 设置为每个测试函数的驱动程序,使用它运行函数并使用 conftest 中的装置后置条件退出。我有很多测试文件,这就是为什么我应该做一次。我也尝试过从固定装置返回变量,但据我了解,测试函数仍然需要有固定装置的变量,对我来说它看起来是错误的。例如:fixture - 返回x,testfunction(fixture): x =fixture. 它仍然无法与 webdriver\driver 一起使用(或者更确切地说我没有弄清楚)。
查看完整描述

1 回答

?
Helenr

TA贡献1780条经验 获得超3个赞

您的测试函数需要将夹具作为参数,这是问题的第一部分。


例如:


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

    ...


查看完整回答
反对 回复 2023-07-11
  • 1 回答
  • 0 关注
  • 118 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信