我需要单击元素中的所有“复选框”。我正在尝试使用element.all(by.css) 但是我不知道是谁将路径传递给我的CSS。
我正在尝试:
for(let index = 0; index < limit; index ++){
const check = element.all(by.css('input[type=checkbox]')).get(index);
check.click();
}
但是我需要从特定面板中单击以下检查:标题为“ Cargo”的p-tabpanel或id = ui-tabpanel-6
的所有输入复选框如何将整个路径传递给CSS?
HTML
<p-tabpanel _ngcontent - c32="" header="Cargo">
<div class="ui-tabview-panel ui-widget-content ng-star-inserted ui-helper-hidden"
role="tabpanel" id="ui-tabpanel-6"
aria-hidden="true" aria-labelledby="ui-tabpanel-6-label">
<label _ngcontent - c34="" class="control-label-radio">
<input _ngcontent - c34="" type="checkbox"> Conhecimento - Escolaridade - Nível superior em Administração
</label>
答案 0 :(得分:0)
但是我需要从特定面板中单击这些检查:标头为“ Cargo”的p-tabpanel
添加header ="Cargo"
作为根以形成嵌套选择器:
css('p-tabpanel[header=Cargo] input[type=checkbox]')
答案 1 :(得分:0)
您可以使用element.all().map()
返回checkbox click
Promise数组。然后使用Promise.all(<promise array>)
等待所有复选框的点击完成。
let promiseList = element.all(
by.css('p-tabpanel[header="Cargo"] input[type=checkbox')
)
.map((it)=>{
return it.click();
});
Promise.all(promiseList)
// Promise is native API of nodejs > 8, please use nodejs 8 or higher.
答案 2 :(得分:0)
您可以尝试以下代码:
element.all(by.css('input[type=checkbox]'))
.then(function (allCheckBoxes) {
for(let i=0;i<allCheckBoxes.length;i++){
allCheckBoxes[i].click();
}
}
我们对所有复选框都做出了承诺,然后对其进行迭代,然后逐个单击它们。