Как передать общее имя / текст / значение из основной функции в API-интерфейс shadow $ () в webdriver-io. Пожалуйста, предоставьте ваш вклад / идеи - PullRequest
0 голосов
/ 13 января 2020

Общая функция:

function getShadow(rootElement: string, shadowElements: string []) {
    let rootSelector = $(rootElement);
    if (shadowElements.length > 0) {
        shadowElements.forEach((element) => {
            rootSelector = rootSelector.shadow$(element);
        });
    }
    return rootSelector;
}

Если мне нужно создать общую функцию, такую ​​как selectButton (), для всех кнопок, нажимаемых с помощью функции about.

Если это был Xpath: // Кнопка opp // span [. = \ "$ {name} \"] // ancestor :: button

Specifi c Функция:

selectButton(name: string) {
   const selector = `(//opp-button//span[.=\"${name}\"]//ancestor::button)`;
   safeClick($(selector));
    }

мы могли бы написать функцию передавая $ {name} в селектор Xpath для всех типов кнопок. Но теперь, так как я использую функцию getShadow, selectButton записывается так:

selectButton(name: string){
     const selector = getShadow('opp-login',['opp-button']);
        safeClick($(selector));
        animationFinished();
        loadingFinished();
    }
}

Я не смог передать $ {name} в функцию getShadow, чтобы его можно было широко использовать для всех кнопок, которые нужно выбрать , Пожалуйста, помогите, если бы мы могли передать $ {name} в функцию getShadow, которая может использоваться для всех кнопок на экране opp-login.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...