我有几个按钮,有两个类:
<button _ngcontent-c39="" class="btn btn-block"></button>
<button _ngcontent-c39="" class="btn btn-block btn-primary"></button>
我需要点击所有带有类"btn btn-block"的按钮,而不想点击带有类"btn btn-block btn-primary"的按钮。我已经试过了:
element.all(by.css('.btn.btn-block')).click();
但是Protractor点击了这两个按钮。我已经尝试使用className定位器,但是量角器找不到元素。
element.all(by.className('.btn.btn-block)).click();
发布于 2018-08-09 23:16:42
我使用:
element.all('button[class="btn btn-block"]').each(function(element){
element.click();
});
并且成功了。
发布于 2018-08-09 07:04:30
我能想到的最干净的方法就是执行正则表达式检查。
element(by.all('.btn-block')).each(function(element)
{
let tmp = element.getAttribute('class');
if(/^btn btn-block$/.test(tmp)) element.click();
}
基本上,这将遍历包含.btn-block
类的每个元素,然后检查以确保它具有确切的btn btn-block
,如果有,则单击该元素。
发布于 2018-08-09 14:09:47
只需使用each()
方法并单击不包含btn-primary
类的每个按钮即可。
var allButtons = element.all(by.css('.btn.btn-block'));
allButtons.each((button) => {
button.getAttribute('class').then((buttonClass) => {
if (!buttonClass.includes('btn-primary')) {
button.click();
}
});
})
https://stackoverflow.com/questions/51755674
复制相似问题