实验铬特征有问题吗?

时间:2018-06-26 13:59:23

标签: javascript puppeteer

我一直在使用Accessibility Object Model API,我认为尝试在Puppeteer测试中使用它很酷。

ComputedAccessibleNode返回一个承诺。我可以让getComputedAccessibleNode显示在浏览器控制台中,但是当尝试登录到Puppeteer控制台时,我只是得到一个空对象。

我错过了什么吗,还是因为const puppeteer = require('puppeteer'); (async () => { const browser = await puppeteer.launch({ headless : false, devtools: true, args : ['--enable-accessibility-object-model'] }); const page = await browser.newPage() await page.goto('http://localhost:3000/') // This shows the ComputedAccessibleNode in the browser console. a11y_node = await page.evaluate(() => { const checkbox = document.querySelector('label'); getComputedAccessibleNode(checkbox) .then((data) => console.log(data)) }); // Why does this show an empty object? page.$eval('label', (el) => getComputedAccessibleNode(el)) .then((data) => console.log(data)) debugger; })() 仍是实验功能?

JAVA_HOME

1 个答案:

答案 0 :(得分:3)

似乎a11y_node = await page.evaluate(() => { const checkbox = document.querySelector('label'); return getComputedAccessibleNode(checkbox) .then((data) => { var obj = {}; for (key in data) { obj[key] = data[key] } return obj }); }); console.log(a11y_node); // logs the object. 没有可枚举的属性。

并且操纵up的人似乎对对象进行了一些简单的复制,以将其带回到Node上下文中。

使用for ... in,您将能够正确复制对象并将其返回到Node上下文:

{{1}}