by.cssContainingText无法按预期工作

时间:2018-04-04 17:57:40

标签: javascript angularjs protractor

我有一个我想点击的div,看起来像这样:

<div class="CG-Item CG-B-Left ng-binding" ng-bind="SPL.showTitleText">My New SPL</div>

所以我称之为代码:

element(by.cssContainingText('.CG-Item', 'My New SPL')).click();

它返回undefined。我错过了什么吗?用例与文档相同。

https://www.protractortest.org/#/api?view=ProtractorBy.prototype.cssContainingText

编辑:忘记在我第一次发布时显示html对象中有ng-bind属性。我相信这就是它不起作用的原因。

3 个答案:

答案 0 :(得分:2)

你有没有尝试过element.all(by.cssContainingText('div','My New SPL'))。first()。click()

答案 1 :(得分:0)

放置element.all而不是仅元素对我有帮助

答案 2 :(得分:0)

element.all()-它返回所有符合定位条件的元素,因此我们必须使用索引或其他内置方法来首先获取元素以单击它。

element.all(by.repeater('result in memory')).get(1).click();
element.all(by.repeater('result in memory')).first().click();

element()-它返回匹配定位条件的单个元素,因此我们可以直接单击它。

element(by.id("someID")).click();