हेडलेस क्रोम का उपयोग करके एक स्क्रीनशॉट लेने की कोशिश की जा रही है, लेकिन यह पृष्ठ लोड होने से पहले --स्क्रीनशॉट निष्पादित करता है। MacOS पर zsh चल रहा है, मैं इसे इस तरह से लागू कर रहा हूँ:

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome https://example.com/foo.html --screenshot=/Users/myhome/foo.png

क्या स्क्रीनशॉट लेने से पहले पेज लोड होने तक प्रतीक्षा करने का कोई तरीका है?

1
tomcam 12 अप्रैल 2020, 06:31

1 उत्तर

सबसे बढ़िया उत्तर

जवाब, यह पता चला है कि वे कमांड लाइन विकल्प अच्छी तरह से काम नहीं करते हैं और कठपुतली द्वारा प्रतिस्थापित किया गया है। यहां मेरे द्वारा बनाई गई स्क्रिप्ट है (संक्षिप्तता के लिए हार्डकोड मान)।

यहाँ पूरा कोड है।

const puppeteer = require('puppeteer');
const sleep = (milliseconds) => {
  return new Promise(resolve => setTimeout(resolve, milliseconds))
}
async function run () {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://twitter.com/gnuman1979/status/1239523796542992387');
  await sleep(2000)
  await page.screenshot({path: './foo.png'});
  browser.close();
}
run();

Foo.js के रूप में सहेजें, फिर नोड का उपयोग करके चलाएँ:

$ node foo.js
1
tomcam 12 अप्रैल 2020, 17:46