Jestjs 木偶演员-checkbox.checked未定义-为什么?

Jestjs 木偶演员-checkbox.checked未定义-为什么?,jestjs,puppeteer,Jestjs,Puppeteer,我用木偶和笑话来测试前端的一些东西,我有一个小问题——我想我缺少一些概念 test("Assert that when checkbox isn't checked, dropdown menu is visible", async () => { let checkbox = await page.$('input[ng-model="user.managed.timezone"]'); console.log("Checking if checkbox checked"

我用木偶和笑话来测试前端的一些东西,我有一个小问题——我想我缺少一些概念

test("Assert that when checkbox isn't checked, dropdown menu is visible", async () => {
    let checkbox = await page.$('input[ng-model="user.managed.timezone"]');
    console.log("Checking if checkbox checked");
    console.log("CHECKED: ", checkbox.checked);
  });
根据Puppeter文档,page.$运行document.querySelector。当我在浏览器上运行以下命令时,我得到了我想要的:


设m=document.querySelector('input[ng model=“user.managed.timezone”]”)
console.log(m.checked)//结果为true或false

但是开玩笑的代码会导致CHECKED:undefined


为什么会出现这种情况-->我缺少什么概念?

您试图读取的值与纯值不同

必须使用此语法才能选中
值:

wait(wait checkbox.getProperty('checked')).jsonValue()
下面是一个工作示例:

const puppeter=require('puppeter');
常量html=`
`;
(异步()=>{
const browser=wait puppeter.launch();
const page=wait browser.newPage();
wait page.goto(`data:text/html,${html}`);
const checkbox=wait page.$('input[ng model=“user.managed.timezone”]”);
log(wait(wait checkbox.getProperty('checked')).jsonValue());
等待复选框。单击();
log(wait(wait checkbox.getProperty('checked')).jsonValue());
等待浏览器关闭();
})();
click()应该在evaluate()>>
wait页面中。evaluate((cb)=>cb.click(),复选框)