![](/img/trans.png)
[英]vscode: [ts] Experimental support for decorators is a feature that is subject to change
[英]Problems with experimental chromium feature?
我一直在使用Accessibility Object Model API,我认为在Puppeteer测试中尝试使用它会很酷。
getComputedAccessibleNode
返回一个promise。 我可以让ComputedAccessibleNode
显示在浏览器控制台中,但我只是在尝试登录到Puppeteer控制台时得到一个空对象。
我错过了什么,或者是因为getComputedAccessibleNode
仍然是一个实验性功能?
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;
})()
似乎ComputedAccessibleNode
没有可枚举的属性。
并且puppeteer似乎对你的对象做了一些轻量级的复制,将它带回Node上下文。
使用for ... in
您将能够制作对象的正确副本并将其返回到Node上下文:
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.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.