我正在尝试使用 selenium 登录谷歌,但不断收到“此浏览器或应用程序可能不安全”的错误消息。
我用来登录的功能是:
async function loginToChrome(driver, username, password) {
await driver.get("https://accounts.google.com/signin");
await driver.sleep(1000);
let email_phone = await driver.findElement(
By.xpath("//input[@id='identifierId']")
);
await email_phone.sendKeys(username);
await driver.findElement(By.id("identifierNext")).click();
await driver.sleep(1000);
let passEl = await driver.findElement(By.xpath("//input[@name='password']"));
await passEl.sendKeys(password);
await driver.findElement(By.id("passwordNext")).click();
await driver.sleep(1000);
}
Run Code Online (Sandbox Code Playgroud)
这是与/sf/ask/4160341741/ 和 /sf/ask/4149388281/相同的问题 无法在此浏览器或应用程序中签署您可能不安全的python-selenium-chrome
我试过同时使用 chrome 和 firefox 网络驱动程序,但都不起作用。我也试过这样做.excludeSwitches(['enable-automation'])也没有帮助。
这让我想到,也许登录页面可以检测到我正在自动化环境中运行。我尝试了这个解决方案,该解决方案会隐藏应用程序正在 Web 驱动程序中运行:网站是否可以检测到您何时将 selenium 与 chromedriver 一起使用?
我还调查了这User-Agent是否是问题所在,但我发现它与我的常规 chrome 相同。
所有这些都没有奏效,这让我陷入困境。我已经看到一些解决方案说要使用正常安装的 chrome 中已经创建的用户配置文件,但这不适用于我的用例。
有没有人找到解决这个问题的方法?我一直在寻找几个小时,结果空手而归。
编辑: 这似乎最近引起了很多关注。我找到了一个解决方案,可以让我继续使用自动化客户端而不会出现太多问题。切换到 Puppeteer。看看这些包:
"puppeteer",
"puppeteer-extra",
"puppeteer-extra-plugin-stealth"
Run Code Online (Sandbox Code Playgroud)
编辑 2:我最近看到这引起了很多关注。我找到了我最终用来登录的代码。我用 puppeteer 而不是 selenium …
javascript selenium google-chrome selenium-chromedriver selenium-webdriver
我想使用 selenium 登录我的 gmail 帐户。我使用 python2.7 。它没有错误,但页面说由于某种原因我无法登录我的帐户。你可以看到下面的截图。
这是我的代码:
import time
import selenium
from selenium import webdriver
from selenium.webdriver.support.ui import Select
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
EXE_PATH = r'C:\Users\LENOVO\Downloads\geckodriver.exe'
driver = webdriver.Firefox(executable_path=EXE_PATH)
def login():
mail = 'myMail'
pw = 'myPassword'
driver.get('https://gmail.com')
email = driver.find_element_by_name('identifier')
email.send_keys(mail)
driver.find_element_by_id('identifierNext').click()
time.sleep(10)
password = driver.find_element_by_name('password')
password.send_keys(pw)
driver.find_element_by_id('passwordNext').click()
Run Code Online (Sandbox Code Playgroud)
我该怎么办?请帮助我,我只是一个菜鸟和初学者。谢谢师傅