Automation 如何使用木偶演员循环检查复选框?

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())//如果已选中该复选框,则移动到第二行并选择一个未选中的框 }否则如果{ 等待页面

我有一个复选框列表,每次Puppeter运行测试时,我需要:

  • 如果已选择框,则 移动到下一个框并选中它,如果选择了下一个,则移动到下一个复选框,依此类推

if(wait page.$eval(firstcheckbox,check=>check.checked=true)){//检查是否选中该框 wait page.waitForSelector(do something,ele=>elem.click())//如果已选中该复选框,则移动到第二行并选择一个未选中的框

}否则如果{

等待页面。$eval(firstcheckbox,check=>check.checked=false)){//如果复选框未勾选
等待页面。$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);}
很有效,非常感谢