首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用teardown退出初始化每个测试文件的webdriver

使用teardown退出初始化每个测试文件的webdriver
EN

Stack Overflow用户
提问于 2020-09-03 17:01:52
回答 1查看 1.8K关注 0票数 0

测试模块中的当前代码部分:

代码语言:javascript
复制
def test_01():
    driver.get('https://www.google.com')

测试代码:

代码语言:javascript
复制
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 (或者更确切地说,我没有搞清楚)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-03 17:10:47

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

例如:

代码语言:javascript
复制
def test_01(driver):
    driver.get('https://www.google.com')

但是您还没有一个driver夹具,只有一个叫做browser,所以您需要更改该夹具的名称:

代码语言:javascript
复制
@pytest.fixture(autouse=True)
def driver(request):
   ...

最后,夹具需要返回驱动程序,以便您可以使用它。

代码语言:javascript
复制
@pytest.fixture(autouse=True)
def driver(request):
    ...
    yield driver
    ...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63728411

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档