如何使用 Puppeteer 删除输入文本
How to delete input text with Puppeteer
我需要通过 puppeteer 在 iFrame 中 remove/delete 文本。我可以使用 method/object 页面轻松完成,即
await page.click(cssSelectorInput);
for (let i = 0; i < settings._30; i++) {
await page.keyboard.press('Backspace');
}
以上将从 CSS 选择器 cssSelectorInput 中删除 30 个或更少的字符。
但是,当我尝试时:
// Get the iFrame in Signle Sign On page
const frameHandle = await page.$('iframe[id="sso-iframe"]');
const frame = await frameHandle.contentFrame();
await frame.click(cssSelectorInput);
for (let i = 0; i < settings._30; i++) {
await frame.keyboard.press('Backspace');
}
是的,我知道,看傀儡师,frame.keyboard不在。那么,如何通过 puppeteer 从输入框中删除文本?
这似乎还可以:
import puppeteer from 'puppeteer';
const browser = await puppeteer.launch({ headless: false, defaultViewport: null });
const html = `
<!doctype html>
<html>
<head><meta charset='UTF-8'><title>Test</title></head>
<body>
<iframe src='data:text/html,<input value="Text">'></iframe>
</body>
</html>`;
try {
const [page] = await browser.pages();
await page.goto(`data:text/html,${html}`);
await page.frames()[1].click('input');
for (let i = 0; i < 4; i++) {
await page.keyboard.press('Backspace');
}
} catch (err) { console.error(err); }
我需要通过 puppeteer 在 iFrame 中 remove/delete 文本。我可以使用 method/object 页面轻松完成,即
await page.click(cssSelectorInput);
for (let i = 0; i < settings._30; i++) {
await page.keyboard.press('Backspace');
}
以上将从 CSS 选择器 cssSelectorInput 中删除 30 个或更少的字符。 但是,当我尝试时:
// Get the iFrame in Signle Sign On page
const frameHandle = await page.$('iframe[id="sso-iframe"]');
const frame = await frameHandle.contentFrame();
await frame.click(cssSelectorInput);
for (let i = 0; i < settings._30; i++) {
await frame.keyboard.press('Backspace');
}
是的,我知道,看傀儡师,frame.keyboard不在。那么,如何通过 puppeteer 从输入框中删除文本?
这似乎还可以:
import puppeteer from 'puppeteer';
const browser = await puppeteer.launch({ headless: false, defaultViewport: null });
const html = `
<!doctype html>
<html>
<head><meta charset='UTF-8'><title>Test</title></head>
<body>
<iframe src='data:text/html,<input value="Text">'></iframe>
</body>
</html>`;
try {
const [page] = await browser.pages();
await page.goto(`data:text/html,${html}`);
await page.frames()[1].click('input');
for (let i = 0; i < 4; i++) {
await page.keyboard.press('Backspace');
}
} catch (err) { console.error(err); }