AngularJS量角器:使用ng-show指令选择div

时间:2016-06-09 10:19:02

标签: angularjs protractor angularjs-e2e

我需要使用 ng-show 指令访问div而不使用xpath

<div ng-show="my_error && dirty_field">
  Custom error message.
</div>

我尝试了这些,但它没有正常工作

element(by.css('[ng-show=my_error && dirty_field]'));

element(by.model('my_error && dirty_field'));

我该怎么办?

2 个答案:

答案 0 :(得分:1)

在这里添加几点。

首先,在这种情况下,您肯定需要ng-show值附近的引号:

element(by.css('[ng-show="my_error && dirty_field"]'));

这是因为该值包含非字母数字字符。请参阅此相关主题:

另外,我认为您不应该使用定位器中的dirty_field部分。这听起来像是表单验证逻辑中使用的更多技术变量。我使用&#34;包含&#34;请检查仅检查my_error部分(请注意我在这种情况下如何删除引号 - 值为字母数字):

element(by.css('[ng-show*=my_error]'));

另请注意,您可以使用$快捷方式代替element(by.css())

$('[ng-show*=my_error]');

答案 1 :(得分:0)

你在进行量角器测试时以这种方式处理属性。

element.all(by.css('[ui-sref="about_us"]')).first();
element(by.css('[ng-click="clickme()"]')),
element(by.css('[ng-show*=show_me]'));