在量角器中找到一个元素

时间:2016-05-03 18:50:32

标签: protractor

 <div>
                <label localize="{data: 'Name', suffix: ':'}">Name:</label>
                <span class="required" ng-class="{'disabled': meterCreating}" input-control="{title: 'Meter', okCallback:setMeterName, value: meter.meterName, ss: 'meters'}">
                    <span hs-placeholder="Enter Name" class="ng-binding"></span>
                </span>
            </div>

查找元素的最佳方法是:placeholder =“输入名称”?

场景:使用上面的代码段

查找元素

用户点击“输入姓名”框,弹出另一个用于输入姓名的窗口。

1 个答案:

答案 0 :(得分:3)

基于HTML,我能看到的最简洁的方法是通过css链接:

element(by.css('span.required span.ng-binding'))(通常只是span.ng-binding,但我非常怀疑这是唯一的。我也怀疑span.required span.ng-binding是独一无二的。

还有很多其他选择,但是它们不会很好,因为它们会是类似的链条。

element(by.cssContainingText('label', 'Name:')).element(by.css('span > span'));

element(by.css('div label span.ng-binding'))等。

我建议您向开发人员寻求更好的定位器(特别是ID&#39; s),这样可以更轻松地使用JavaScript。不幸的是,我不认为您能够通过HTML属性找到该元素,这是我最喜欢的方式之一。它看起来像这样:

element(by.css('span[placeholder=Enter Name]')) - 但我非常确定会为无效的定位器引发错误。它接受大多数&#34;标准&#34; html属性,例如valueoptionstyle等...