Gerald McAuley Ответов: 1

Передать параметры из функции cucumber в скрипт Python?


Я пишу простой BDD-скрипт, используя Cucumber(Behavior), python и selenium.
Первые два шага моей функции и скрипта работают, но у меня возникли проблемы с получением параметра из моей функции Behavior в мой скрипт Python.

Я постоянно получаю эту ошибку, когда запускаю функцию поведения:
You can implement step definitions for undefined steps with these snippets:

@when(u'he enters search term rate')
def step_impl(context):
    raise NotImplementedError(u'STEP: When he enters search term rate')


Огурец/функция поведения:

Scenario: Valid Payee
       Given the user is on a Page
       When he clicks the search field
       And he enters search term 'rate'


сценарий Python:

from behave import given, when, then
xurl =''

@given('the user is on a Page')
def step_user_is_on_fund_transfer_page(context):
    context.driver.get("#")

@when('he clicks the search field')
def step_he_clicks_search_field(context):
    context.driver.find_element_by_id("cludoquery").click()


@when('he enters search term "{text}"')
def step_he_enters_searchterm(context,text):
    context.driver.find_element_by_id("cludoquery").send_keys(text)


Селен env:

from selenium import webdriver
def before_all(context):
    context.driver = webdriver.Chrome()

def after_all(context):
    context.driver.quit()


Что я уже пробовал:

Я пробовал использовать 'rate' и <rate> В моем файле функций для параметра, и я пробовал использовать {text}, "{text}" в скрипте python, но безуспешно.

Есть идеи?

1 Ответов

Рейтинг:
2

Member 13161717

То, что я делаю, это


And he enters a search term "<rate>"


И в самом деле .py

@when('he enters a search term "(.*)"')
def step_he_enters_searchterm(context,text):
    context.driver.find_element_by_id("cludoquery").send_keys(text)



Он использует регулярное выражение для поиска переменной и присваивает эту переменную тексту.


Убедитесь, что вы разместили это в верхней части вашего файла .py, чтобы вы могли использовать регулярное выражение.

use_step_matcher('re')