node.js - 如何使用 Puppeteer 将(长)文本从剪贴板粘贴到 Textarea

标签 node.js clipboard puppeteer paste

我正在尝试使用 Puppeteer 在文本区域字段中输入一些文本。

我的做法是将文本复制到剪贴板,然后点击textarea,尝试粘贴进去。但是,文本并没有添加到输入框。

我尝试过的事情:

  • 使用 page.type 需要很长时间,因为文本有几千个字符。我宁愿避免这种情况。

  • 使用 page.$eval("#textarea", (el, in) => el.value = in, text) 不起作用,因为该站点是 SPA。

await clipboardy.writeSync(text);
await page.click("#textarea")
await page.waitFor(500);
await page.keyboard.down('Control');
await page.keyboard.down('Shift');
await page.keyboard.press('KeyV');
await page.keyboard.up('Control');
await page.keyboard.up('Shift');
// does not paste
// also tried, clipboardy.readSync();
// does not paste either

预期的结果是在 SPA textarea 中输入文本。

最佳答案

为了回答我自己的问题,上面的复制/粘贴方法工作正常。

问题是我的文本字符串是空的。 :[

关于node.js - 如何使用 Puppeteer 将(长)文本从剪贴板粘贴到 Textarea,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56561589/

相关文章:

javascript - 显示多个API调用的结果

javascript - 多行文本到剪贴板

node.js - 有没有办法通过 Puppeteer 中的两个属性找到按钮?

javascript - AngularJS - 正确格式化异步调用

node.js - terraformer-arcgis-parser nodejs 模块错误与示例代码?

node.js - Node 'extends layout'不显示 block 内容

c# - 如何在 C# 中监视剪贴板更改?

javascript - 在 JavaScript 中将 blob 读取为数据 url

javascript - Puppeteer 中主函数和渲染器函数之间的通信

node.js - Puppeteer:仅为主页域添加基本身份验证 header ,不适用于第 3 方请求