运行 同时操作多个人偶
Run multiple puppeteer at once
我有下面的脚本来打开一个页面并截图。
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({ args: ['--no-sandbox', '--disable-setuid-sandbox'] });
const page = await browser.newPage();
await page.goto('https://example');
const elems = await page.$('.thumbnail');
await elems.screenshot({ path: 'thumbnail.png', type: 'png' });
browser.close();
await console.log("done");
})();
我正在 运行 通过 php 执行命令来执行它,如下所示。
exec("node test.js ".$mainid." 2>&1", $out, $err);
print_r($out);
print_r($err);
当我 运行 php 脚本一个 time.But 当我 运行 相同时它工作正常
同时脚本,一个在中间停止,另一个打印出错误代码 124
我试过无头模式 false 和 browser.newPage("new context");正如他们的 github 页面中提到的那样,仍然无法正常工作。
PHP 将阻止下一次执行,直到当前执行完成。这就是它与 nodejs 不同的原因。从 php 控制 nodejs 会遇到一些问题。
如果您复制此行并 运行 它,您只会看到一个 chrome,如果当前行不关闭,则下一个甚至不会执行。
exec("node test.js ".$mainid." 2>&1", $out, $err); print_r($out); print_r($err);
exec("node test.js ".$mainid." 2>&1", $out, $err); print_r($out); print_r($err);
通常对非阻塞应用程序使用 php 不是一个好主意,它不是正确的工具,但如果您仍然想使用 [=19= 控制和创建非阻塞应用程序],你要多了解PCNTL or ReactPHP
我用过https://www.npmjs.com/package/concurrently to run multiple puppeteer scripts at once. You can see the command that I'm running here - https://github.com/Addstones/rpa/blob/master/package.json#L11
我有下面的脚本来打开一个页面并截图。
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({ args: ['--no-sandbox', '--disable-setuid-sandbox'] });
const page = await browser.newPage();
await page.goto('https://example');
const elems = await page.$('.thumbnail');
await elems.screenshot({ path: 'thumbnail.png', type: 'png' });
browser.close();
await console.log("done");
})();
我正在 运行 通过 php 执行命令来执行它,如下所示。
exec("node test.js ".$mainid." 2>&1", $out, $err);
print_r($out);
print_r($err);
当我 运行 php 脚本一个 time.But 当我 运行 相同时它工作正常 同时脚本,一个在中间停止,另一个打印出错误代码 124
我试过无头模式 false 和 browser.newPage("new context");正如他们的 github 页面中提到的那样,仍然无法正常工作。
PHP 将阻止下一次执行,直到当前执行完成。这就是它与 nodejs 不同的原因。从 php 控制 nodejs 会遇到一些问题。
如果您复制此行并 运行 它,您只会看到一个 chrome,如果当前行不关闭,则下一个甚至不会执行。
exec("node test.js ".$mainid." 2>&1", $out, $err); print_r($out); print_r($err);
exec("node test.js ".$mainid." 2>&1", $out, $err); print_r($out); print_r($err);
通常对非阻塞应用程序使用 php 不是一个好主意,它不是正确的工具,但如果您仍然想使用 [=19= 控制和创建非阻塞应用程序],你要多了解PCNTL or ReactPHP
我用过https://www.npmjs.com/package/concurrently to run multiple puppeteer scripts at once. You can see the command that I'm running here - https://github.com/Addstones/rpa/blob/master/package.json#L11