簡體   English   中英

Pytest bdd 錯誤“scenario_wrapper() 缺少 1 個必需的位置參數:'request'”

[英]Pytest bdd error "scenario_wrapper() missing 1 required positional argument: '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'

我看了幾個類似的問題,但對我來說不是可以理解的。 如果有人知道問題可能出在哪里,或者一些鏈接將不勝感激!

你有沒有函數 def 的裝飾器。

來自文檔: https : //github.com/pytest-dev/pytest-bdd

@scenario('publish_article.feature', 'Publishing the article')
def test_publish():
    pass

您需要裝飾空函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM