Reputation: 1
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
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
Reputation: 67
Google login doesn't allow automated login. It was just recently they came up with this approach
Upvotes: 5