import { Vue, Component, Ref } from "vue-property-decorator";
import { ElForm } from 'element-ui/types/form';
@Component
export default class Login extends Vue {
@Ref("loginForm") readonly loginForm!: ElForm
}
import { Vue, Component, Ref } from 'vue-property-decorator'
import AnotherComponent from '@/path/to/another-component.vue'
@Component
export default class YourComponent extends Vue {
@Ref() readonly anotherComponent!: AnotherComponent
@Ref('aButton') readonly button!: HTMLButtonElement
}
async function createScreenshot(screenShotName, siteUrl, date) {
try {
const dest = `screenshots/${date}`;
if (!fs.existsSync(dest)) {
fs.mkdirSync(dest, { recursive: true });
}
const blockedResources = [
'googletagmanager.com',
'callkeeper.ru',
'mc.yandex.ru',
'connect.facebook.net',
'code.reffection.com',
'calltouch.ru',
'c.4clouds.org'
];
const requestsBlocked = [];
const browser = await puppeteer.launch({args: ['--no-sandbox']});
const page = await browser.newPage();
await page.setViewport({
width: 1920,
height: 1080,
deviceScaleFactor: 1,
});
await page.setRequestInterception(true);
page.on('request', interceptedRequest => {
if (blockedResources.includes(new URL(interceptedRequest.url()).host)) {
requestsBlocked.push(interceptedRequest.url());
interceptedRequest.abort();
} else {
interceptedRequest.continue();
}
});
await page.goto(siteUrl);
await autoScroll(page);
await page.screenshot({
path: `${dest}/${screenShotName}.jpg`,
fullPage: true
});
await browser.close();
} catch (error) {
console.log(error);
}
}