Я использую кукольник в Google App Engine с Node.JS
всякий раз, когда я запускаю кукольник на движке приложения, я получаю сообщение об ошибке:
Сбой при навигации из-за отключения браузера!
Это отлично работает в локальной среде, поэтому я предполагаю, что это проблема с движком приложения.
const browser = await puppeteer.launch({
ignoreHTTPSErrors: true,
headless: true,
args: ["--disable-setuid-sandbox", "--no-sandbox"],
});
Это файл app.yaml моего движка приложений
runtime: nodejs12
env: standard
handlers:
- url: /.*
secure: always
script: auto
- - РЕДАКТИРОВАТЬ -
Он работает, когда я добавляю аргумент --disable-dev-shm-usage
, но тогда всегда время ожидания. Вот мои коды.
const browser = await puppeteer.launch({
ignoreHTTPSErrors: true,
headless: true,
args: [
"--disable-gpu",
"--disable-dev-shm-usage",
"--no-sandbox",
"--disable-setuid-sandbox",
"--no-first-run",
"--no-zygote",
"--single-process",
],
});
const page = await browser.newPage();
try {
const url = "https://seekingalpha.com/market-news/1";
const pageOption = {
waitUntil: "networkidle2",
timeout: 20000,
};
await page.goto(url, pageOption);
} catch (e) {
console.log(e);
await page.close();
await browser.close();
return resolve("error at 1");
}
try {
const ulSelector = "#latest-news-list";
await page.waitForSelector(ulSelector, { timeout: 30000 });
} catch (e) {
// ALWAYS TIMEOUTS HERE!
console.log(e);
await page.close();
await browser.close();
return resolve("error at 2");
}
...