es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Prevenir la aparición del cuadro de diálogo de guardar contraseña de ChromeDriver – Selenium Python

Usando ChromeDriver y Selenium en Python 3.9, los argumentos recomendados para agregar a las opciones no están funcionando actualmente en 2 de mis máquinas.

He probado todas las respuestas que se encuentran enlaces aquí y aquí, que según la documentación deberían ser correctas. Debo estar pasando por alto algo que no puedo encontrar.
Sigo recibiendo una solicitud de Chrome preguntando si quiero guardar el nombre de usuario y contraseña. Y dado que es un procedimiento automatizado, esto no es necesario.

    options = webdriver.ChromeOptions()
    prefs = {"profile.default_content_setting_values.notifications" : 2,
             "credentials_enable_service": False, 
             "profile.password_manager_enabled": False}

    options.add_experimental_option("prefs",prefs)
    options.add_experimental_option("useAutomationExtension", False)
    options.add_experimental_option("excludeSwitches",["enable-automation"])
    options.add_argument('--disable-extensions')
    options.add_argument('--no-sandbox')
    options.add_argument("--log-level=3")
    options.add_experimental_option("prefs", {"intl.accept_languages": "en-EN"})

    mobile_emulation = {
        "userAgent": "Mozilla/5.0 (Linux; Android 11; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Mobile Safari/537.36"}

    options.add_experimental_option("mobileEmulation", mobile_emulation)
    browser = webdriver.Chrome(options=options)

Según todas las fuentes consultadas, configurar “credentials_enable_service” y “profile.password_manager_enabled” en False debería ser suficiente.

Se agradecen cualquier sugerencia.
He intentado usar diferentes métodos para importar las opciones pero ninguno de ellos funciona.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Respuesta del experto en IT

    Es difícil diagnosticar el problema sin más información sobre las máquinas y sus configuraciones. Sin embargo, sugeriría probar las siguientes modificaciones en su código:

    options = webdriver.ChromeOptions()
    prefs = {
        "profile.default_content_setting_values.notifications": 2,
        "credentials_enable_service": False,
        "profile.password_manager_enabled": False
    }
    
    options.add_experimental_option("prefs",prefs)
    
    # Desactivar la barra de información de automatización de Chrome
    options.add_experimental_option("excludeSwitches", ["enable-automation"])
    
    # Desactivar el administrador de contraseñas de Chrome
    options.add_argument("--disable-extensions")
    options.add_argument("--disable-infobars")
    options.add_argument("--disable-popup-blocking")
    options.add_argument("--no-default-browser-check")
    options.add_argument("--no-sandbox")
    options.add_argument("--no-first-run")
    options.add_argument("--ignore-certificate-errors")
    
    # Establecer el idioma en inglés
    options.add_experimental_option("prefs", {"intl.accept_languages": "en-EN"})
    
    # Establecer el agente de usuario como un dispositivo móvil
    options.add_argument("--user-agent=Mozilla/5.0 (Linux; Android 11; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Mobile Safari/537.36")
    options.add_experimental_option("mobileEmulation", {"deviceName": "iPhone X"})
    
    browser = webdriver.Chrome(options=options)
    

    Algunos cambios que hice incluyen desactivar otras funciones no deseadas como las infobars y el bloqueo emergente, y establecer el agente de usuario como un dispositivo móvil. También agregué el parámetro deviceName en la opción mobileEmulation, ya que noté que faltaba en su código.

    Espero que estos cambios ayuden a resolver el problema que está enfrentando. Si no es así, no dude en proporcionar más información para que podamos ayudarlo mejor.

Comments are closed.