Después de consultar expertos en esta materia, programadores de diversas ramas y maestros dimos con la solución a la cuestión y la plasmamos en esta publicación.
Solución:
Una solución que funciona para mí: https://stackoverflow.com/a/60328992/12939291 o https://www.youtube.com/watch?v=HkgDRRWrZKg
Breve: Inicio de sesión de Stackoverflow con cuenta de Google con redirección
from selenium import webdriver
from time import sleep
class Google:
def __init__(self, username, password):
self.driver = webdriver.Chrome('./chromedriver')
self.driver.get('https://stackoverflow.com/users/signup?ssrc=head&returnurl=%2fusers%2fstory%2fcurrent%27')
sleep(3)
self.driver.find_element_by_xpath('//*[@id="openid-buttons"]/button[1]').click()
self.driver.find_element_by_xpath('//input[@type="email"]').send_keys(username)
self.driver.find_element_by_xpath('//*[@id="identifierNext"]').click()
sleep(3)
self.driver.find_element_by_xpath('//input[@type="password"]').send_keys(password)
self.driver.find_element_by_xpath('//*[@id="passwordNext"]').click()
sleep(2)
self.driver.get('https://youtube.com')
sleep(5)
username = ''
passwort = ''
Google(username, password)
Tuve el mismo problema y encontré la solución. estoy usando
1) Windows 10 Pro
2) Versión cromada 83.0.4103.97 (Official Build) (64-bit)
3) selenio ChromeDriver 83.0.4103.39
Un código C# simple que abre páginas de Google
var options = new ChromeOptions();
options.addArguments(@"user-data-dir=c:UsersusernameAppDataLocalGoogleChromeUser Data");
IWebDriver driver = new OpenQA.Selenium.Chrome.ChromeDriver();
driver = new ChromeDriver(Directory.GetCurrentDirectory(), options);
driver.Url = "https://accounts.google.com/";
Console.ReadKey();
El problema central aquí no puede iniciar sesión cuando usa el controlador de selenio, pero puede usar el perfil que ya inició sesión en las cuentas de Google.
Tienes que encontrar dónde está tu perfil de Chrome Store y agregarlo con "user-data-dir"
opción.
PD. Reemplace nombre de usuario con su nombre de cuenta real.
En Linux, el perfil de usuario está en "~/.config/google-chrome"
.
Este mensaje de error…
… implica que el WebDriver instancia no pudo autenticar el Contexto de navegación es decir Navegador sesión.
Es posible que este navegador o aplicación no sea seguro
Este error puede ocurrir debido a diferentes factores de la siguiente manera:
-
En el artículo “Este navegador o aplicación puede no ser seguro” error al intentar iniciar sesión con Google en aplicaciones de escritorio @Raphael Schaad mencionó que, si un usuario puede iniciar sesión en la misma aplicación sin problemas con otras cuentas de Google, entonces el problema debe estar con la cuenta particular. En la mayoría de los casos, la posible razón es que esta cuenta de usuario en particular está configurada con Autenticación de dos factores.
-
En el artículo Aplicaciones menos seguras y su cuenta de Google se menciona que, si una aplicación o un sitio no cumple con los estándares de seguridad de Google Chrome, Google puede bloquear a cualquier persona que intente iniciar sesión en su cuenta. Las aplicaciones menos seguras pueden facilitar que los piratas informáticos ingresen a su cuenta, por lo que bloquear los inicios de sesión desde estas aplicaciones ayuda a mantener su cuenta segura.
Solución
En estos casos la respectiva solución sería:
- Desactivar Autenticación de dos factores para esta cuenta de Google y ejecute su @Prueba.
- Permitir aplicaciones menos seguras
Puede encontrar una discusión detallada en No se puede iniciar sesión en Google con la automatización de selenio debido a “Es posible que este navegador o aplicación no sea seguro”.
Bucear profundo
Sin embargo, para ayudar a proteger su cuenta, Navegadores web Es posible que no le permita iniciar sesión desde algunos navegadores. Google podría detener los inicios de sesión desde navegadores que:
- No es compatible con JavaScript o tiene Javascript desactivado.
- Tener AutomationExtension o extensiones no seguras o no compatibles agregadas.
- Utilice marcos de pruebas de automatización.
- Están integrados en una aplicación diferente.
Solución
En estos casos existen diversas soluciones:
-
Utilice un navegador que admita JavaScript:
-
Cromo
-
Safari
-
Firefox
-
Ópera
-
explorador de Internet
-
Borde
-
Activa JavaScript en Navegadores web: si usa un navegador compatible y aún no puede iniciar sesión, es posible que deba activar JavaScript.
-
Si aún no puede iniciar sesión, es posible que tenga AutomatizaciónExtensión / inseguro / sin apoyo extensiones activadas y es posible que deba desactivarlas de la siguiente manera:
public class browserAppDemo public static void main(String[] args) throws Exception System.setProperty("webdriver.chrome.driver", "C:\Utility\BrowserDrivers\chromedriver.exe"); ChromeOptions options = new ChromeOptions(); options.addArguments("start-maximized"); options.setExperimentalOption("useAutomationExtension", false); options.setExperimentalOption("excludeSwitches", Collections.singletonList("enable-automation")); WebDriver driver = new ChromeDriver(options); driver.get("https://accounts.google.com/signin") new WebDriverWait(driver, 10).until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@id='identifierId']"))).sendKeys("gashu"); driver.findElement(By.id("identifierNext")).click(); new WebDriverWait(driver, 10).until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@name='password']"))).sendKeys("gashu"); driver.findElement(By.id("passwordNext")).click(); System.out.println(driver.getTitle());
-
Puede encontrar un par de discusiones relevantes en:
-
Inicio de sesión de Gmail usando Selenium webdriver en Java
-
Scripts de prueba de Selenium para iniciar sesión en la cuenta de Google a través del nuevo formulario de inicio de sesión de ajax
consideraciones adicionales
Finalmente, es posible que algunas versiones antiguas del navegador no sean compatibles, así que asegúrese de que:
- JDK se actualiza a los niveles actuales JDK 8u241.
- Selenio se actualiza a los niveles actuales Versión 3.141.59.
- ChromeDriver se actualiza al nivel actual de ChromeDriver v80.0.
- Cromo se actualiza a actual Chrome versión 80.0 nivel. (según las notas de la versión de ChromeDriver v80.0)
Si tienes alguna sospecha o disposición de aclararse nuestro escrito puedes realizar una reseña y con mucho gusto lo interpretaremos.