html - 如何在我的测试用例中选择子元素

标签 html angularjs protractor

我正在尝试测试我的 html 的点击事件

html

<div class="testGroup">
    <div ng-repeat="test in tests">
        <a ng-click="clickMe(test.id)">{{test.name}}</a>
        <a ng-click="clickMe(test.id)">{{test.name}}</a>
        <a ng-click="clickMe(test.id)">{{test.name}}</a>
        <a ng-click="clickMe(test.id)">{{test.name}}</a>
    </div>
</div>
<div class="testGroup">
    <div ng-repeat="test in tests">
        <a ng-click="clickMe(test.id)">{{test.name}}</a>
        <a ng-click="clickMe(test.id)">{{test.name}}</a>
        <a ng-click="clickMe(test.id)">{{test.name}}</a>
    </div>
</div>
<div class="testGroup">
    <div ng-repeat="test in tests">
        <a ng-click="clickMe(test.id)">{{test.name}}</a>
        <a ng-click="clickMe(test.id)">{{test.name}}</a>
        <a ng-click="clickMe(test.id)">{{test.name}}</a>
    </div>
</div>

三个 div 是相同的,但我想选择第一个 testGroup 类并单击第一个 a 标签。我还想单击第二个 testGroup 类上的第一个 a 标签。

在我的spec.js中

element.all(by.css('.testGroup')).get(0).then(function(elem) {
    element(by.repeater('test in tests').row(0)).click();
});

我收到 undefined is not a function 错误。我认为这是因为 get(0) 不是一个 promise 。如何触发单击第一个 testGroup div 中的第一个标签和第二个 testGroup div 中的第一个标签?感谢您的帮助。

最佳答案

像这样的东西可以吗?

var testGroupOneTag = $$('.testGroup').get(0).$('[ng-click="clickMe(test.id)"]');
var testGroupTwoTag = $$('.testGroup').get(1).$('[ng-click="clickMe(test.id)"]');
testGroupOneTag.click():
testGroupTwoTag.click():

$$ 是 css 的 element.all 的缩写。

关于html - 如何在我的测试用例中选择子元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32149678/

相关文章:

angularjs - Protractor 获取所有选择框(选项)的值

javascript - Protractor - 如何在配置文件中排除 spec 文件?

javascript - 使用html在不同的屏幕分辨率下显示不同的提示信息

html - 是否有 CTRL + SHIFT + F 用于 sublime 之类的 eclipse 快捷方式?

AngularJS$ watch : more simple ones or less complex ones?

angularjs - Angular Ui 路由器无法访问我的 Controller 内的 $stateParams

testing - 关于等待超时错误的自定义消息

html - 使用 CSS 调整 Canvas 大小会扭曲鼠标操作

javascript - 图像跟随滚动条

javascript - 使用单个函数隐藏多个输入