selenium.common.exceptions.NoSuchElementException: Mensaje: no existe tal elemento: No se puede localizar el elemento al intentar hacer clic en el botón Siguiente con selenium

Así que estoy tratando de hacer clic en el siguiente botón usando selenium, lo he intentado con el siguiente código, pero termina en error.

El elemento

 

Mi código

 driver.find_element_by_name("submitNext").click() 

Pero luego sale estos errores.

 Traceback (most recent call last): File "C:/Users/thomas/PycharmProjects/test/mainapp/main.py", line 194, in  visa() File "C:/Users/thomas/PycharmProjects/test/mainapp/main.py", line 174, in visa driver.find_element_by_name("submitNext").click() File "C:\Users\thomas\PycharmProjects\BudgetMain\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 487, in find_element_by_name return self.find_element(by=By.NAME, value=name) File "C:\Users\thomas\PycharmProjects\BudgetMain\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 955, in find_element 'value': value})['value'] File "C:\Users\thomas\PycharmProjects\BudgetMain\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 312, in execute self.error_handler.check_response(response) File "C:\Users\thomas\PycharmProjects\BudgetMain\venv\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"name","selector":"submitNext"} (Session info: chrome=66.0.3359.170) (Driver info: chromedriver=2.36.540470 (e522d04694c7ebea4ba8821272dbef4f9b818c91),platform=Windows NT 10.0.16299 x86_64) 

¿Alguien tiene alguna idea de cómo hacer clic en ese botón sin errores?

Este mensaje de error …

 selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"name","selector":"submitNext"} (Session info: chrome=66.0.3359.170) (Driver info: chromedriver=2.36.540470) 

… implica que ChromeDriver no pudo localizar el elemento deseado.

Localizando el elemento deseado.

De acuerdo con el HTML que ha compartido para hacer clic en el elemento, puede utilizar cualquiera de las siguientes estrategias de localización :

  • css_selector :

     driver.find_element_by_css_selector("input[name='submitNext'][value='Next']").click() 
  • xpath :

     driver.find_element_by_xpath("//input[@name='submitNext' and @value='Next']").click() 

Sin embargo, su principal problema es la compatibilidad de la versión entre los binarios que está utilizando de la siguiente manera:

  • Usted está usando Chromedriver = 2.36
  • Notas de la versión de chromedriver = 2.36 menciona claramente lo siguiente:

Soporta Chrome v63-65

  • Estás utilizando Chrome = 66.0
  • Las Notas de la versión de ChromeDriver v2.38 mencionan claramente lo siguiente:

Soporta Chrome v65-67

  • Su versión de Selenium Client es desconocida para nosotros.

Así que hay una clara falta de coincidencia entre ChromeDriver v2.36 y Chrome Browser v66.0

Solución

  • Actualiza Selenium a los niveles actuales Versión 3.11.0 .
  • Actualiza ChromeDriver al nivel actual de ChromeDriver v2.38 .
  • Mantenga la versión de Chrome en los niveles de Chrome v66.x. ( según las notas de la versión de ChromeDriver v2.38 )
  • Limpie su Área de trabajo del proyecto a través de su IDE y Reconstruya su proyecto solo con las dependencias requeridas.
  • Use la herramienta CCleaner para borrar todas las tareas del sistema operativo antes y después de la ejecución de su Suite de prueba .
  • 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 .