我有两个带有两个类的按钮:
<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();
但是量角器单击这两个按钮。 我已经尝试过使用className定位器,但是量角器找不到该元素。
element.all(by.className('.btn.btn-block)).click();
答案 0 :(得分:0)
我想出的最干净的方法是进行正则表达式检查。
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
的元素,如果确实如此,则单击该元素。
答案 1 :(得分:0)
只需使用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();
}
});
})
答案 2 :(得分:0)
我用过:
element.all('button[class="btn btn-block"]').each(function(element){
element.click();
});
工作了。