[英]how to get element from an component using protractor element by css
我需要單擊元素中的所有“復選框”。 我正在嘗試使用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>
但是我需要從特定面板中單擊這些檢查:標頭為“ Cargo”的p-tabpanel
添加header ="Cargo"
作為根以形成嵌套選擇器:
css('p-tabpanel[header=Cargo] input[type=checkbox]')
您可以使用element.all().map()
返回checkbox click
承諾數組。 然后使用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.
您可以嘗試以下代碼:
element.all(by.css('input[type=checkbox]'))
.then(function (allCheckBoxes) {
for(let i=0;i<allCheckBoxes.length;i++){
allCheckBoxes[i].click();
}
}
我們得到所有復選框的保證,然后遍歷它們並逐個單擊它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.