Pytest bdd 错误“scenario_wrapper() 缺少 1 个必需的位置参数:'request'”

问题描述

我正在学习 pytest 并且在我添加 pytest-bdd 之前尝试运行一个运行良好的测试时出错(功能文件,步骤文件是我正在尝试运行的文件) 这是我的代码

import pytest
import time
from selenium import webdriver
from pytest_bdd import scenario,given,when,then

@scenario('../feature/learn.feature','learning pytest-bdd')

@when('Does work-->website open,find element')
def does_work():
    driver = webdriver.Edge(r"C:/Users/artri/Downloads/edgedriver_win64/msedgedriver.exe")

    driver.get('https://www.example.com/')
    driver.maximize_window()
    print(driver.title)

    time.sleep(5)

    element = driver.find_element_by_xpath("//button[@class='btn btn-outline-light btn-lg btn-close']")
    element.click()

    name = driver.find_element_by_xpath("//a[@href='/items/something/']").text
    driver.quit()

    return name

@then('Get text "something"')
def test_work():
    assert does_work() == 'something'

它找到元素并检查它的值是否正确。我想知道为什么在添加步骤并制作功能文件后它不起作用。相同步骤文件中的其他测试的工作方式与之前一样。 错误消息:

@then('Get text "something"')
    def test_work():
>       assert does_work() == 'something'
E       TypeError: scenario_wrapper() missing 1 required positional argument: 'request'

我看了几个类似的问题,但对我来说不是可以理解的。 如果有人知道问题可能出在哪里,或者提供一些链接,我们将不胜感激!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...