Skip to content

Instantly share code, notes, and snippets.

@herdianf
Created May 31, 2019 08:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save herdianf/4edee1b238caca3ab3e40b143c731956 to your computer and use it in GitHub Desktop.
Save herdianf/4edee1b238caca3ab3e40b143c731956 to your computer and use it in GitHub Desktop.
Prepare Puppetter for Browse
const preparePageForTests = async (page) => {
await page.setJavaScriptEnabled(true);
const userAgent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36';
await page.setUserAgent(userAgent);
await page.evaluateOnNewDocument(() => {
Object.defineProperty(navigator, 'webdriver', {
get: () => false,
});
});
await page.evaluateOnNewDocument(() => {
window.navigator.chrome = false;
});
await page.evaluateOnNewDocument(() => {
window.chrome = false;
});
await page.evaluateOnNewDocument(() => {
const originalQuery = window.navigator.permissions.query;
return window.navigator.permissions.query = (parameters) => (
parameters.name === 'notifications' ?
Promise.resolve({ state: Notification.permission }) :
originalQuery(parameters)
);
});
await page.evaluateOnNewDocument(() => {
Object.defineProperty(navigator, 'plugins', {
get: () => [1, 2, 3, 4, 5],
});
});
await page.evaluateOnNewDocument(() => {
Object.defineProperty(navigator, 'languages', {
get: () => ['en-US', 'en'],
});
});
await page.setViewport({ width: 1280, height: 800 });
await page.setRequestInterception(true);
page.on('request', request => {
console.log('request:', request.resourceType(), request.method(), request.url());
request.continue();
});
await page.on("pageerror", err => {
console.log("Page error: " + err.toString());
});
await page.on('console', msg => console.log('Console:' + msg.text(), msg.location()));
await page.on('dialog', async dialog => {
console.log('dialog = ', dialog.message());
await dialog.dismiss();
});
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment