
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); }); 根据puppeteer docs,page.$运行document.querySelector.当我在浏览器上运行以下内容时,我得到了我想要的内容:
let m = document.querySelector(‘input [ng-model =“user.managed.timezone”]’)
console.log(m.checked)//导致true或false
但是jest中的代码导致CHECKED:undefined
为什么会这样 – >我错过了什么概念?
解决方法 您正在尝试读取值 ElementHandle,它与纯 JS Element不同.您必须使用此语法来获取选中的值:
await (await checkBox.getProperty('checked')).JsonValue() 这是工作示例:
const puppeteer = require('puppeteer');const HTML = ` <HTML> <body> <input ng-model="user.managed.timezone" type="checkBox" /> </body> </HTML>`;(async () => { const browser = await puppeteer.launch(); const page = await browser.newPage(); await page.goto(`data:text/HTML,${HTML}`); const checkBox = await page.$('input[ng-model="user.managed.timezone"]'); console.log(await (await checkBox.getProperty('checked')).JsonValue()); await checkBox.click(); console.log(await (await checkBox.getProperty('checked')).JsonValue()); await browser.close();})(); 总结 以上是内存溢出为你收集整理的jestjs – Puppeteer – checkbox.checked未定义 – 为什么?全部内容,希望文章能够帮你解决jestjs – Puppeteer – checkbox.checked未定义 – 为什么?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)