木偶& browserWSEndpoint:无法动态上传文件

时间:2018-01-15 17:36:22

标签: javascript web-services headless-browser puppeteer google-chrome-headless

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

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

除文件上传代码外,其他所有功能都有效。 如果没有无浏览器连接(只是启动puppeteer和chrome实例),代码可以毫无问题地上传图像,但是,当将它转发到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,并且该文件存在于同一文件夹中。

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

干杯!

1 个答案:

答案 0 :(得分:2)

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