我需要使用 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'));
我该怎么办?
答案 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]'));