Cucumber разбивает один xpath в «Scenario Outline Example» на несколько аргументов - PullRequest
0 голосов
/ 10 января 2020

ВОПРОС: как вы ИЗБЕГАЛИ или исправили руководящие принципы сценария, которые скремблируют один XPATH в 3 или более параметра шага?

@wip
 Scenario Outline: Browse to Target URL having multiple specified WebElements
    Given Using browser "<theBrowser>" 
    When targetURL "<targetURL>" is entered
    Then Expected Page "<targetURL>" is loaded 
    And  Loaded Page displays webelements with locator "<locatorID>" 
 Examples:  
 | theBrowser |   targetURL       |       locatorID                   | 
 |  chrome    | www.qaweb.net/    |  //*[@id="loginwithajaxwidget-5"] | 
 |  firefox   | www.ganbatte.net/ |  //*[@id="loginwithajaxwidget-2"] | 

Проблема (и) 1. Тесты пропускаются как неопределенные 2. xpath разбит на три (3) параметра arg1 ~ arg4

@Then("^Loaded Page displays webelements with locator \"([^\"]*)\"loginwithajaxwidget-(\\d+)\"([^\"]*)\" having innerText \"([^\"]*)\"$")
public void loaded_Page_displays_webelements_with_locator_loginwithajaxwidget(String arg1, int arg2, String arg3) throws Throwable 

Я использую "Offical Eclipse Plugin для огурца"

Ответы [ 2 ]

2 голосов
/ 11 января 2020

Локаторы не должны быть включены в примеры огурцов, которые все должны быть сделаны под капотом. Подумайте о том, что конечный пользователь читает ваш сценарий ios, он не знает, что такое локатор. Вместо этого локатор должен находиться в объекте вашей страницы, и этот шаг должен быть бизнес-шагом.

0 голосов
/ 14 января 2020

Огурец генерирует фрагменты, используя очень простые правила. Они часто полезны, но всегда должны рассматриваться только как предложения.

В этом случае отредактируйте предложенный фрагмент (или напишите собственное определение шага) в соответствии с вашими требованиями. Например:

@Then("^Loaded Page displays webelements with locator \"(.*)\"$")
public void loaded_Page_displays_webelements_with_locator_loginwithajaxwidget(String xpath) throws Throwable 
...