angular - 如何使用 Protractor typescript 在具有跨度的按钮上单击具有相似元素详细信息的元素

标签 angular typescript jasmine protractor webautomation

enter image description here

需要您帮助创建 Protractor typescript 代码,我该如何单击其中一个按钮?它有 _ngcontent 类和跨度类,有没有人知道如何做到这一点?网站上的代码是:

<form _ngcontent-c34 novalidate class="ng-untouched ng-unreal ng-valid">
    <atx-create-license-act-main _ngcontent-c34 _nghost-c36>
       <button _ngcontent-c36 color="accent" mat-raised-button class="mat-raised-button mat-accent">
           <span class="mat-button-wrapper">Add License</span>
           <div class="mat-button-droped mat-droped" matdrop></div>
           <div class="mat-button-focus-overlay"></div>
        </button>
    </atx-create-license-act-main>
</form>
<form _ngcontent-c34 novalidate class="ng-untouched ng-unreal ng-valid">
    <atx-create-license-act-main _ngcontent-c34 _nghost-c36>
       <button _ngcontent-c36 color="accent" mat-raised-button class="mat-raised-button mat-accent">
           <span class="mat-button-wrapper">Add License</span>
           <div class="mat-button-droped mat-droped" matdrop></div>
           <div class="mat-button-focus-overlay"></div>
        </button>
    </atx-create-license-act-main>
</form>

我试过下面的代码,我似乎无法让它工作......

clickdone = element.all(by.cssContainingText('.mat-button-wrapper','Add License')).get(0);
clickdone = element.all(by.css('button.mat-raised-button.mat-accent')).get(1);
clickdone = element(by.cssContainingText('span.mat-button-wrapper','Add License'));
clickdone = element.all(by.cssContainingText('button.mat-raised-button.mat-accent','Add License')).get(0);

然后执行...

clickdone.click();

它们似乎都不起作用.. 并且出现错误提示.. “失败:元素不可交互”。 这是什么意思?我一直坚持这个,知道怎么做吗?

最佳答案

试试下面的

addLicense = element.all(by.css('button>span.mat-button-wrapper');

browser.wait(protractor.ExpectedConditions.elementToBeClickable(addLicense.get(0)), 5000); 
addLicense.get(0).click();

根据您希望单击的按钮更改索引。

希望对你有帮助

关于angular - 如何使用 Protractor typescript 在具有跨度的按钮上单击具有相似元素详细信息的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53848112/

相关文章:

angular - 尖括号 [] () {} 它们绑定(bind)什么以及何时使用哪个

typescript - 什么是 | typescript 中使用的运算符?

将停止使用 TypeScript 命名空间?

javascript - 使用 Chutzpah 和 requirejs 测试 javascript

class - 使用 Angular2 在简单的类构造函数中注入(inject)服务

angular - Angular 6 项目中 2 tslint.json 文件的使用

css - 在 Angular 7 中启用滚动

typescript 错误 TS2420 : Class incorrectly implements interface

javascript - $scopeProvider <- $scope/未知提供者

angularjs - 如何测试由事件执行的 Controller 范围内的函数