The code I’m receiving the previously mentioned error is this:
import { puppeteer } from '@pipedream/browsers';
import fs from "fs";
export default defineComponent({
key: "puppeteer-screenshot",
name: "Take a Screenshot",
version: "0.1.8",
type: "action",
props: {
puppeteer: {
type: "app",
app: "puppeteer",
},
url: {
type: "string",
label: "URL",
description: "Enter the URL you'd like to take a screenshot of here",
default: "{{steps.data_processing_discord.URL}}",
},
filename: {
type: "string",
label: "Name File",
description: "Enter the filename",
default: "{{steps.data_processing_discord[\"Source+Symbol\"]}}-{{steps.data_processing_discord.Data}}",
},
data: { type: "data_store" }
},
async run({ steps, $ }) {
const { filename, url } = this;
try {
const browser = await puppeteer.browser();
const page = await browser.newPage();
await page.setViewport({ width: 1920, height: 1080 });
const sessionidValue = await this.data.get("sessionid");
const cachecValue = await this.data.get("cachec");
const cookieSessionID = {
name: 'sessionid',
value: sessionidValue,
domain: '.[tradingview.com](http://tradingview.com)',
path: '/',
};
const cookieCachec = {
name: 'cachec',
value: cachecValue,
domain: '.[tradingview.com](http://tradingview.com)',
path: '/',
};
await page.setCookie(cookieSessionID, cookieCachec);
await page.setDefaultNavigationTimeout(0);
await page.goto(url, { waitUntil: 'networkidle2' });
const elementChart = 'body > div.js-rootresizer__contents.layout-with-border-radius > div.layout__area--center';
await page.waitForSelector(elementChart, { timeout: 100000 });
const elementWidgetBar = 'body > div.js-rootresizer__contents.layout-with-border-radius > div.layout__area--right > div > div.widgetbar-tabs > div > div > div > div > button.button-I_wb5FjE.isActive-I_wb5FjE.apply-common-tooltip.common-tooltip-vertical.accessible-I_wb5FjE';
await page.waitForSelector(elementWidgetBar, { timeout: 5000 });
await page.click(elementWidgetBar);
console.log('Executando screenshot.');
const screenshot = await page.screenshot({
clip: { x: 56, y: 42, width: 1810, height: 995 },
timeout: 100000
});
console.log('Screenshot executado.');
await browser.close();
console.log('Browser fechado.');
const fn = `${filename.replace(/[&\/\\#, +()$~%.'"":*?<>{}]/g, "-")}.png`;
fs.writeFileSync('/tmp/' + fn, screenshot);
$.export("filename", fn);
$.export("PathFL", "/tmp/" + fn);
} catch (error) {
console.error('Erro:', error);
}
},
});