无法基于同级量角器中的文本单击跨度内的按钮

时间:2019-03-25 23:43:22

标签: angularjs selenium protractor

我正在尝试基于同级文本单击按钮。

<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>

如上面的代码所示,基于test或test2,我想相应地单击按钮。我该如何实现?

2 个答案:

答案 0 :(得分:1)

我将编写一些代码,该代码需要一个变量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()};
}

答案 1 :(得分:0)

尝试以下一种

 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();
      }
    }

将您想要单击的按钮的值传递给上述功能。

希望它对您有帮助

相关问题