我正在尝试 puppeteer 和 browserless/chrome ( https://hub.docker.com/r/browserless/chrome ) 来测试一些自动化脚本。我目前只是在本地运行一个无浏览器/chrome 实例,使用 browserWSEndpoint 将 puppeteer 连接到它。

它都在本地运行,都在同一台机器上。

除了文件上传代码外,一切都正常。
如果没有浏览器连接(仅启动 puppeteer 和一个 Chromium 实例),代码可以毫无问题地上传图像,但是,当将其中继到 websocket 时,它显然无法找到文件,即使我提供了完整路径。

这是我正在使用的代码:

const browser = await puppeteer.connect({
    browserWSEndpoint: 'ws://localhost:32769',
    headless: true
})
const page = await browser.newPage();
await page.goto('http://localhost:8080', {waitUntil: 'networkidle2'});

// Do some things

let testUpload = async () => {
    const upload = await page.$("input");
    await upload.uploadFile('test.jpg');
    await page.screenshot({path: 'test_s_'+Date.now()+'.png'});
}

// Do more things

我 100% 确定此时 DOM 存在,并且该文件存在于同一文件夹中。

任何指向正确方向的指示都非常有帮助。

干杯!

最佳答案

在您遇到问题之前它运行了多远?
它是否到达第一个“//某些东西”位?
我过去在使用 'networkidle2' 时遇到了一些麻烦,从 1.0.0 开始,它看起来好像已被删除

关于javascript - Puppeteer & browserWSEndpoint : can't upload files dynamically,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48268069/

10-12 00:57