El proceso iniciado desde la ubicación de Chrome C: \ .. \ Chrome \ Application \ chrome.exe ya no se está ejecutando, por lo que ChromeDriver está asumiendo que Chrome se ha bloqueado

Versión de Chrome: 68.0.3440.106
Versión de Chrome Webdriver: ChromeDriver 2.41.578737
Versión de Python: Python 3.5.2

Escribo este código en python:

from selenium import webdriver from selenium.webdriver.common.keys import Keys o = webdriver.ChromeOptions() o.add_argument("disable-extensions"); o.add_argument("--start-maximized"); driver = webdriver.Chrome(executable_path=r"chromedriver.exe",options=o) driver.get("http://www.python.org") assert "Python" in driver.title elem = driver.find_element_by_name("q") elem.clear() elem.send_keys("pycon") elem.send_keys(Keys.RETURN) assert "No results found." not in driver.page_source driver.close() 

Después de unos segundos, Chrome se abrió con este error:


y nada sucedió hasta que cierre Chrome y obtenga esta excepción:

  Traceback (most recent call last): File ".../game.py", line 8, in  driver = webdriver.Chrome(executable_path=r"chromedriver.exe",options=o) File "...\Python\Python35-32\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 75, in __init__ desired_capabilities=desired_capabilities) File "...\Python\Python35-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 156, in __init__ self.start_session(capabilities, browser_profile) File "...\Python\Python35-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 251, in start_session response = self.execute(Command.NEW_SESSION, parameters) File "...\Python\Python35-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 320, in execute self.error_handler.check_response(response) File "...\Python\Python35-32\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited normally (unknown error: unable to discover open pages) (The process started from chrome location C:\Program Files (x86)\Google\Chrome\Application\chrome.exe is no longer running, so ChromeDriver is assuming that Chrome has crashed.) (Driver info: chromedriver=2.41.578737 (49da6702b16031c40d63e5618de03a32ff6c197e),platform=Windows NT 10.0.17134 x86_64) 

use el argumento correcto para deshabilitar la extensión:

 from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.chrome.options import Options o = Options() #o.add_argument("--disable-extensions"); #here o.add_experimental_option("useAutomationExtension", false); #you can try this as well o.add_argument("--start-maximized"); driver = webdriver.Chrome(executable_path=r"chromedriver.exe",chrome_options=o) driver.get("http://www.python.org") assert "Python" in driver.title elem = driver.find_element_by_name("q") elem.clear() elem.send_keys("pycon") elem.send_keys(Keys.RETURN) assert "No results found." not in driver.page_source driver.close() 

Este mensaje de error …

 selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited normally (unknown error: unable to discover open pages) (The process started from chrome location C:\Program Files (x86)\Google\Chrome\Application\chrome.exe is no longer running, so ChromeDriver is assuming that Chrome has crashed.) 

… implica que ChromeDriver no pudo iniciar / generar un nuevo WebBrowser, es decir, una sesión de Chrome Browser .

Su problema principal parece ser que el binario de chrome, es decir, chrome.exe y los archivos asociados ya no están disponibles / accesibles desde la ubicación predeterminada de:

 C:\Program Files (x86)\Google\Chrome\Application\ 

Las posibles razones son:

  • Chrome instalado previamente en la ubicación predeterminada se corrompió / eliminó .
  • Si ha instalado Chrome Browser en una ubicación no estándar , debe hacerlo:

     o = webdriver.ChromeOptions() o.binary_location("/path/to/other/chrome/binary"); 
  • Aquí encontrará una discusión detallada sobre No se puede encontrar el binario de Chrome con Selenium en Python para versiones anteriores de Google Chrome

Consideraciones adicionales

  • Chrome y ChromeDriver están presentes en la ubicación deseada.
  • Chrome y ChromeDriver tienen permisos de ejecución para usuarios no root (no administradores).
  • Actualizar Selenium a los niveles actuales Versión 3.14.0 .
  • Limpie su Área de trabajo del proyecto a través de su IDE y Reconstruya su proyecto solo con las dependencias requeridas.
  • ( Solo WindowsOS ) Use la herramienta CCleaner para borrar todas las tareas del sistema operativo antes y después de la ejecución de su Test Suite .
  • ( Solo LinuxOS ) Libere y libere la memoria no utilizada / almacenada en caché en Ubuntu / Linux Mint antes y después de la ejecución de su Test Suite .
  • Si la versión básica de su cliente web es demasiado antigua, desinstálela a través de Revo Uninstaller e instale un GA reciente y una versión de lanzamiento del cliente web .
  • Tomar un reinicio del sistema .
  • Ejecute su @Test como usuario no root .
  • Ejecute el servidor de selenium con webdriver-manager start desde la máquina con el escritorio (no use una sesión remota para iniciar el servidor de selenium).