Невозможно нажать на кнопку внутри диапазона, основываясь на тексте в одноуровневом транспортире. - PullRequest
0 голосов
/ 26 марта 2019

Я пытаюсь нажать на кнопку на основе родственного текста.

<li ng-repeat="list in lists" ng-if="!includes(list)" class="ng-scope">
    <span class="ng-binding">
        <button type="submit" class="btn btn-primary" ng-click="useList(list)">Use</button>
        test
    </span>
    <span class="ng-binding">
        <button type="submit" class="btn btn-primary" ng-click="useList(list)">Use</button>
        test2
    </span>
</li>

Как показано в приведенном выше коде, на основе теста или теста2 я хочу соответственно нажать на кнопку. Как мне этого добиться?

Ответы [ 2 ]

1 голос
/ 26 марта 2019

Я напишу некоторый код, который принимает переменную myText и нажимает кнопку; это должно работать независимо от того, сколько элементов span вы повторяете, если они имеют формат, указанный в вашем вопросе.

let buttons = element.all(by.css('button'));
for (var button in buttons) {
    WebElement parent = (WebElement) ((JavascriptExecutor) driver).executeScript(
                               "return arguments[0].parentNode;", button);
    if (parent.getText() == myText) {button.click()};
}
0 голосов
/ 26 марта 2019

Попробуйте следующее

 select(text:string){
   const ele = element.all(by.css('li > span > button');
   for(i=0;i< ele.count();i++){
   if(ele.get(i).getText() === text){
     ele.get(i).click();
      }
    }

Передайте значение кнопки, которую вы хотите нажать, вышеупомянутой функции.

Надеюсь, она вам поможет

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