puppeteer not able to log into google account

In puppeteer when opening regular chrome and trying to access a GMAIL account, get message:

Couldn't sign you in This browser or app may not be secure. Learn more Try using a different browser. If you’re already using a supported browser, you can refresh your screen and try again to sign in.

Code:

var p = require("puppeteer");
var a = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.106 Safari/537.36"
 p.launch({
    headless:false,
    args: [

    ],
    executablePath:"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
}).then((b) => {
    console.log("ASD");
    b.newPage().then((g) => {
        g.evaluate(() => {

            var v = document.querySelector(".signUpLink")
            console.log("hi", v)


        })
        g.setUserAgent(a);
        Promise.all([
            g.goto("https://accounts.google.com/signin/v2/identifier?service=grandcentral&passive=1209600&continue=https%3A%2F%2Fvoice.google.com%2Fsignup&followup=https%3A%2F%2Fvoice.google.com%2Fsignup&flowName=GlifWebSignIn&flowEntry=ServiceLogin"),
            g.setUserAgent(a),
            g.waitForNavigation({ waitUntil: 'networkidle0' }),
            g.waitForSelector(".signUpLink", {
                visible:true
            }),
            g.waitFor(3000),
            new Promise((r,e) => {
                console.log("hi")
                r();

            }),
            g.click(".signUpLink"),
            g.evaluate(() => {

                var v = document.querySelector(".signUpLink")
                console.log("hi", v)


            })
        ])
    })
})

fixes?

Upvotes: 5

Views: 6812

Answers (2)

anjaneyulubatta505
anjaneyulubatta505

Reputation: 11695

I was able to get it to work with the below code.

await page.setBypassCSP(true) does the magic.

const puppeteer = require('puppeteer-extra');
// const chromium = require('@sparticuz/chrome-aws-lambda');
const chromium = require('chrome-aws-lambda');
const pluginStealth = require('puppeteer-extra-plugin-stealth')();
console.log(pluginStealth.availableEvasions); // => Set { 'user-agent', 'console.debug' }
puppeteer.use(pluginStealth);
pluginStealth.setMaxListeners = () => {};

const browser = await puppeteer.launch({
    args: chromium.args,
    defaultViewport: chromium.defaultViewport,
    dumpio: process.env.STAGE === 'dev',
    executablePath: await chromium.executablePath,
    headless: chromium.headless,
    ignoreHTTPSErrors: true,
});

const page = await browser.newPage();
await page.setBypassCSP(true)

Upvotes: 3

Gaurav Dhingra
Gaurav Dhingra

Reputation: 67

Google login doesn't allow automated login. It was just recently they came up with this approach

Upvotes: 5

Related Questions