无法使用node.js / puppeteer上传图像文件

约翰·史密斯

到目前为止,我已经尝试了两件事。

const iconupload = await page.$x(xpath); //Triple-checked that this x path is correct
iconupload[0].uploadFile(picture); //Triple-checked that this picture path is correct

await page.evaluate((picturepath) => {
    document.querySelector('input[type=file]').value = picturepath
}, picturepath);

对于第一种方法,我得到一个

TypeError: Cannot read property 'uploadFile' of undefined

对于第二种方法,我得到了

Uncaught DOMException: Failed to set the 'value' property on 'HTMLInputElement': This input element accepts a filename, which may only be programmatically set to the empty string.

有什么方法可以将图像上传到此输入吗?

约翰·史密斯

解决了

原来,所讨论的图像输入在iframe元素内。进行一些挖掘之后,我发现如果页面内包含iframe元素,则正常的伪造者功能将无法正常工作。这是因为根据文档,典型的伪造者功能(例如page。$ x,page。$和page.waitFor)实际上是page.mainFrame()。$ x,page.mainFrame()。$和page的快捷方式。 mainFrame()。waitFor()。因此,这些方法不适用于页面中包含的辅助框架

这是我为克服此问题所做的工作。我首先从src属性获得了iframe的链接。然后,我创建了一个新页面,并让该新页面转到了此链接。然后,我可以照常刮擦。这是我的代码的一段摘要:

let framelink = await page.evaluate(() => {
     return document.getElementsByTagName('iframe')[1].src;
}); 
const picturepage = await browser.newPage();
picturepage.goto(framelink)

//Now I can just scrape normally using methods like picturepage.$x

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用node.js预览上传的图像文件

来自分类Dev

无法使用Wordpress REST API(Node JS)上传图像文件

来自分类Dev

Firebase Storage从Node.js上传图像文件

来自分类Dev

使用Nightwatch.js上传图像文件

来自分类Dev

如何使用Express Node.js上传图像文件并显示

来自分类Dev

无法使用文件上传将图像上传到node.js中的特定文件夹

来自分类Dev

无法在EPiServersite中上传图像文件

来自分类Dev

无法在EPiServersite中上传图像文件

来自分类Dev

使用Angular JS从asp.net MVC中的文件上传器中删除特定的图像文件

来自分类Dev

使用Angular JS从asp.net MVC中的文件上传器中删除特定的图像文件

来自分类Dev

如何使用Multipart上传图像文件?

来自分类Dev

如何使用axios上传图像文件?

来自分类Dev

使用 Selenium 上传图像文件

来自分类Dev

node.js文件上传typeError无法读取属性“图像”

来自分类Dev

发送图像文件响应-node.js

来自分类Dev

无法上传多个图像文件ng-file-upload

来自分类Dev

如何使用 nest.js 正确返回图像文件?

来自分类Dev

使用okhttp v3.2.0上传多个图像文件

来自分类Dev

如何使用FileReader API从url上传图像文件?

来自分类Dev

使用PHP将单个图像文件上传到FTP

来自分类Dev

需要使用Curl上传JSON和图像文件

来自分类Dev

图像文件未使用multer上传/创建

来自分类Dev

使用formData和Axios上传图像文件

来自分类Dev

使用PHP将单个图像文件上传到FTP

来自分类Dev

使用okhttp v3.2.0上传多个图像文件

来自分类Dev

使用html和javascript上传图像文件返回fakepath

来自分类Dev

无法使用Node.js读取文件

来自分类Dev

无法使用Node.js读取文件

来自分类Dev

使用canvas.toDataURL()中的node.js保存图像文件

Related 相关文章

热门标签

归档