Javascript 使用量角器单击复选框
没有唯一的型号、id和标签名称。我该如何选中/单击复选框 html/代码为:Javascript 使用量角器单击复选框,javascript,jquery,angularjs,protractor,Javascript,Jquery,Angularjs,Protractor,没有唯一的型号、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
<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>
uCPM
CPM
除了名字旁边的标签外,还有大约15个名字相同的。我到处搜索,看看量角器是否允许您按标签查找元素
我的尝试是通过by.buttonText、by.partialButtonText、by.css和by.binding查找。我在这方面运气不好
我的目的是传入一个标签名,以便切换特定的复选框。
这就像元素(by.css(header)).click()代码>
其中header是传入的内容。您可以通过.xpath()使用
我相信会有更好的答案。我刚开始学习量角器:)你可以试着按索引点击它
3=位置
element.all(by.repeater('column in $parent.columns.standardMetrics').get(3).element(by.css('[ng-model="column.visible"]')).click();
我强烈建议使用ids。使用指令将ID添加到每个复选框中,然后可以执行如下操作:
element(by.css('input[myid="checkbox_x"]')); // where x is defined in a loop
编辑:缺少文本属于标签而不是输入的信息。
这应该有效:
元素(by.xpath(“//label[text()='uCPM']]/input”) 为元素分配一个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>
p、 只要读到你不能改变HTML,因为网站不是你的。试试这个:
var first= element.all(by.repeater('column in $parent.columns.standardMetrics')).get(0);
first.get(0).then(function(el) {
el.click();
});
因此它将是元素(by.xpath('//input['+header+'='+label']'))
?@wtosh刚刚意识到应该检查以下同级文本。检查更新。标签的示例值为uCPM
或CPM
。我传入的变量将转到哪里?@wtosh label是此处的变量。复制并粘贴“label”,并用标题替换“label”,但给了我一个错误:意外的字符串放入”“]”)
在代码处。没有任何id。您在我的问题中看到的是确切的代码。我无法添加id,此网站不是我的。如何找到我传递的变量的确切索引?
element(by.id('label0')).click();
var first= element.all(by.repeater('column in $parent.columns.standardMetrics')).get(0);
first.get(0).then(function(el) {
el.click();
});