1const Apify = require('apify');
2
3
4const takeSnapShot = async (browser, key) => {
5 key = key || "SCREEN";
6 let width = await browser.webDriver.executeScript("return Math.max(document.body.scrollWidth, document.body.offsetWidth, document.documentElement.clientWidth, document.documentElement.scrollWidth, document.documentElement.offsetWidth);");
7 let height = await browser.webDriver.executeScript("return Math.max(document.body.scrollHeight, document.body.offsetHeight, document.documentElement.clientHeight, document.documentElement.scrollHeight, document.documentElement.offsetHeight);");
8 await browser.webDriver.manage().window().setSize(width, height);
9 const screen = await browser.webDriver.takeScreenshot();
10 await Apify.setValue(key, Buffer.from(screen, 'base64'), { contentType: 'image/png' });
11 console.log(`Taken snapshot key: ${key}`);
12};
13
14Apify.main(async () => {
15
16 const input = await Apify.getValue('INPUT');
17 console.log('My input:');
18 console.dir(input);
19
20
21 const browser = await Apify.browse({
22 url: 'http://example.com/',
23 proxyUrl: "http://apifier:Bmg9F2ybAqEgRA6s@107.172.42.82:80",
24 userAgent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.32 Safari/537.36",
25 });
26 await takeSnapShot(browser, 'SCREEN_BEFORE');
27 await browser.webDriver.sleep( 60000 );
28 await takeSnapShot(browser, 'SCREEN_AFTER');
29 browser.close();
30
31
32 const output = {
33 crawledAt: new Date(),
34 };
35 console.log('My output:');
36 console.dir(output);
37 await Apify.setValue('OUTPUT', output);
38});