没有唯一的型号,ID,标签名称。我怎么想检查/点击复选框?
html /代码是:
<div ng-repeat="column in $parent.columns.standardMetrics" class="ng-scope">
<label class="ng-binding">
<input type="checkbox" ng-model="column.visible" name="" class="ng-pristine ng-valid">
uCPM
</label>
</div>
</div><div ng-repeat="column in $parent.columns.standardMetrics" class="ng-scope">
<label class="ng-binding">
<input type="checkbox" ng-model="column.visible" name="" class="ng-pristine ng-valid">
CPM
</label>
</div>
除名称旁边的标签外,其中大约有15个具有相同的名称。我到处搜索,看看量角器是否允许你按标签找到元素。
我的尝试是通过by.buttonText,by.partialButtonText,by.css和by.binding找到的。我对此没有运气。
我的目的是传递一个标签名称,我可以切换特定的复选框。
所以就像element(by.css(header)).click();
其中header是传入的内容。
答案 0 :(得分:1)
我强烈建议使用ID。使用指令将ID添加到每个复选框,然后您可以这样:
element(by.css('input[myid="checkbox_x"]')); // where x is defined in a loop
答案 1 :(得分:0)
您可以使用by.xpath()
:
element(by.xpath('//input[@ng-model = "column.visible" and following-sibling::text() = "' + label + '"]'));
答案 2 :(得分:0)
我相信会有更好的答案。我刚开始学习量角器:)你可以尝试通过索引点击它。
3 =位置。
element.all(by.repeater('column in $parent.columns.standardMetrics').get(3).element(by.css('[ng-model="column.visible"]')).click();
答案 3 :(得分:0)
编辑:错过了文本属于标签而不是输入。
这应该工作:
元件(by.xpath( “//标签[文本()= 'uCPM'] /输入”));
答案 4 :(得分:0)
为元素分配dinamic id:
<div ng-repeat="column in $parent.columns.standardMetrics" class="ng-scope">
<label id="label{{$index}}" class="ng-binding">
<input type="checkbox" ng-model="column.visible" name="" class="ng-pristine ng-valid">
uCPM
</label>
</div>
然后在量角器上:
element(by.id('label0')).click();
P.S。只是读到你不能改变HTML,因为网站不是你的。试试这个:
var first= element.all(by.repeater('column in $parent.columns.standardMetrics')).get(0);
first.get(0).then(function(el) {
el.click();
});