Puppeteer 木偶演员:page.type()遗漏了字符串的前几个字符
我面临木偶演员的Puppeteer 木偶演员:page.type()遗漏了字符串的前几个字符,puppeteer,Puppeteer,我面临木偶演员的page.type()方法的问题。有时它可以完美地键入整个字符串,但有时它只是漏掉了前几个字符 假设我有一个字符串:我可能还没到那里,但我比昨天更近了。它只是键入y还没有到那里,但我比昨天更近了 我在github中找到了一个与此相关的,但它已关闭。虽然我已经尝试了那里建议的一些解决方案,但似乎不起作用。我也要求重新讨论这个问题,但我想这需要一些时间 因此,我想从中寻求解决方案。代码如下: const blog = { postContent: [ {
page.type()
方法的问题。有时它可以完美地键入整个字符串,但有时它只是漏掉了前几个字符
假设我有一个字符串:我可能还没到那里,但我比昨天更近了
。它只是键入y还没有到那里,但我比昨天更近了
我在github中找到了一个与此相关的,但它已关闭。虽然我已经尝试了那里建议的一些解决方案,但似乎不起作用。我也要求重新讨论这个问题,但我想这需要一些时间
因此,我想从中寻求解决方案。代码如下:
const blog = {
postContent: [
{
text: "SSBtYXkgbm90IGJlIHRoZXJlIHlldCwgYnV0IEknbSBjbG9zZXIgdGhhbiB5ZXN0ZXJkYXk=",
status: "pending"
},
{
text: "RG9uJ3QgcXVpdGUuIFN1ZmZlciBub3cgYW5kIGxpdmUgdGhlIHJlc3Qgb2YgeW91ciBsaWZlIGFzIGEgY2hhbXBpb24u",
status: "pending"
},
{
text: "TGlmZSBpcyBub3QgYWJvdXQgd2lubmluZy4gSXQncyBhYm91dCBub3QgZ2l2aW5nIHVwIQ==",
status: "pending"
}
]
};
await page.waitForSelector('div[role="presentation"]' );
await page.focus('div[role="presentation"]');
// finding the index of the blog post which is pending
const pendingPostIndex = await blog.postContent.findIndex( item => item.status === "pending" );
// decoding post content
const textContent = `${Buffer.from(blog.postContent[pendingPostIndex].text, 'base64').toString()}`;
// this gets the full text without missing characters
console.log('text content of pending post: ', textContent);
// first couple characters are missing most of the time
await page.type('div[role="presentation"] span', textContent, {
delay: 100
});
我不知道这里会出什么问题。是因为解码需要一点时间,而page.type()会在文本完全解码之前触发吗?还是说找到post索引需要时间?我如何解决这个问题?您在问题页面上提到的一个建议,对我来说也很有效,那就是在键入之前确保输入已归零:
await page.click('div[role="presentation"] span', {clickCount: 3});
await page.keyboard.press('Backspace');
不确定是否相关,但想知道为什么要在span中键入。它是div[role=presentation]span
。但为了简化,我将其更改为input[type=text]span
。我会把它改回原来的样子。这是Facebook的输入字段。没有输入元素。非常感谢,伙计。我首先尝试了上面的代码。但对我来说不起作用。然后我删除了“span”并添加了delay:100
。现在它似乎正在工作,但我不确定它是否完全修复了,或者这个问题会再次出现,因为它过去是随机发生的。如果问题再次出现,我将在此更新。