如何在 Puppeteer 中找到 document.activeElement
How to find document.activeElement in Puppeteer
我想用 puppeteer 自动填写表格。
我填写第一个输入,然后单击一个按钮,然后创建一个具有焦点的新输入字段。
我如何 select 这个输入?我可以使用 document.activeElement 吗?
let newActivity = 'button.new_activity'
await page.waitForSelector(newActivity)
await page.click(newActivity)
// find active/focused input
await page.type(focusedInput, 'message')
您可以使用 evaluateHandle
获取元素句柄,然后对该元素调用 type
函数。
const el = await page.evaluateHandle(() => document.activeElement);
await el.type('message');
function findFocusedNode(node) {
if (node.focused) {
return node;
}
for (const child of node.children || []) {
const focusedNode = findFocusedNode(child);
if (focusedNode) {
return focusedNode;
}
}
}
const snapshot = await page.accessibility.snapshot();
const focusedNode = findFocusedNode(snapshot);
console.log('focusedNode', focusedNode);
https://github.com/puppeteer/puppeteer/blob/master/docs/api.md#class-accessibility
我想用 puppeteer 自动填写表格。 我填写第一个输入,然后单击一个按钮,然后创建一个具有焦点的新输入字段。
我如何 select 这个输入?我可以使用 document.activeElement 吗?
let newActivity = 'button.new_activity'
await page.waitForSelector(newActivity)
await page.click(newActivity)
// find active/focused input
await page.type(focusedInput, 'message')
您可以使用 evaluateHandle
获取元素句柄,然后对该元素调用 type
函数。
const el = await page.evaluateHandle(() => document.activeElement);
await el.type('message');
function findFocusedNode(node) {
if (node.focused) {
return node;
}
for (const child of node.children || []) {
const focusedNode = findFocusedNode(child);
if (focusedNode) {
return focusedNode;
}
}
}
const snapshot = await page.accessibility.snapshot();
const focusedNode = findFocusedNode(snapshot);
console.log('focusedNode', focusedNode);
https://github.com/puppeteer/puppeteer/blob/master/docs/api.md#class-accessibility