Automation 如何使用木偶演员循环检查复选框?
我有一个复选框列表,每次Puppeter运行测试时,我需要:Automation 如何使用木偶演员循环检查复选框?,automation,puppeteer,jest-puppeteer,Automation,Puppeteer,Jest Puppeteer,我有一个复选框列表,每次Puppeter运行测试时,我需要: 如果已选择框,则 移动到下一个框并选中它,如果选择了下一个,则移动到下一个复选框,依此类推 if(wait page.$eval(firstcheckbox,check=>check.checked=true)){//检查是否选中该框 wait page.waitForSelector(do something,ele=>elem.click())//如果已选中该复选框,则移动到第二行并选择一个未选中的框 }否则如果{ 等待页面
- 如果已选择框,则 移动到下一个框并选中它,如果选择了下一个,则移动到下一个复选框,依此类推
等待页面。$eval(单击复选框,elem=>elem.click);//勾选复选框您可以在一个
页面中使用所有测试和更改。evaluate()
:
从“木偶师”导入木偶师;
const browser=wait puppeter.launch({headless:false,defaultViewport:null});
常量html=`
试验
复选框1
复选框2
复选框3
复选框4
`;
试一试{
const[page]=wait browser.pages();
wait page.goto(`data:text/html,${html}`);
等待页面。评估(()=>{
for(document.querySelectorAll('input')的const复选框){
如果(!checkbox.checked)checkbox.click();
}
});
console.log('Done');
}catch(err){console.error(err);}
或者,如果需要元素句柄上的循环,可以尝试以下操作:
从“木偶师”导入木偶师;
const browser=wait puppeter.launch({headless:false,defaultViewport:null});
常量html=`
试验
复选框1
复选框2
复选框3
复选框4
`;
试一试{
const[page]=wait browser.pages();
wait page.goto(`data:text/html,${html}`);
用于(等待页面的常量复选框。$$(“输入”)){
如果(!wait checkbox.evaluate(elem=>elem.checked)){
等待复选框。单击();
}
}
console.log('Done');
}catch(err){console.error(err);}
很有效,非常感谢