Specflow: заменить имя (передать строку из файла объектов) на AccessibilityId в файле определения шага - PullRequest
0 голосов
/ 12 апреля 2020

Я новичок в Specflow. Мой фреймворк с C#. Файл объекта:

Feature: test ABC app

Scenario: 00 Application is open 
    Given Application is open in "User" mode
    When the "Configuration" screen is open

Scenario: 02 Search for servers
    Given the "Add Server" screen is open
    And "Request Server" button is clicked
    When the "Request serer" screen is open

В файле определения шага функция выглядит следующим образом:

 [When(@"the ""(.*)"" screen is open")]
 [Given(@"the ""(.*)"" screen is open")]
 public void GivenScreenIsOpen(string element)
 {
   element_Interactions.ClickOnElement(element);
 }

Требуемое решение: Из файла объекта я передаю строку с отображаемым именем в виде переменная, но в файле определения шага вместо driver.FindElementByName (element) я хочу использовать driver.FindElementByAccessibilityId (element) . Я не могу найти способ, как использовать / вызвать AccessibilityId для соответствующего отображаемого имени из класса моей страницы в функции определения шага и как динамически использовать то же самое для всех других экранов

заранее спасибо.

1 Ответ

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

Я все еще не уверен на 100%, с чем вы имеете дело, но похоже, словарь экранов и идентификаторов доступности был бы самым простым решением:

[Binding]
public class YourSteps
{
    private static readonly Dictionary<string, string> accessibilityIds = new Dictionary<string, string>()
    {
        { "screen1", "accessibility-id-"},
        { "screen2", "accessibility-id-2"},
        { "screen3", "accessibility-id-3"}
    };

    [When(@"the ""(.*)"" screen is open")]
    [Given(@"the ""(.*)"" screen is open")]
    public void GivenScreenIsOpen(string element)
    {
        var accessibilityId = accessbilityIds[element];

        // Or however you click on an element by its accessibility Id
        element_Interactions.ClickOnElement(accessibilityId);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...