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

Resuelto Thomas asked hace 6 años • 1 respuestas

Estoy intentando hacer clic en el Nextbotón usando Selenium, lo intenté con el siguiente código, pero finaliza con un error.

El elemento

<input type="submit" name="submitNext" value="Next">

Mi código

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

Pero luego genera estos errores:

Traceback (most recent call last):
  File "C:/Users/thomas/PycharmProjects/test/mainapp/main.py", line 194, in
<module>
    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)

¿Cómo puedo hacer clic en ese botón sin errores?

Thomas avatar May 13 '18 18:05 Thomas
Aceptado

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

Según 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 versiones entre los binarios que está utilizando de la siguiente manera:

  • Estás usando chromedriver=2.36
  • Las Notas de la versión de chromedriver=2.36 mencionan claramente lo siguiente:

Compatible con Chrome v63-65

  • Estas usando chrome=66.0
  • Las notas de la versión de ChromeDriver v2.38 mencionan claramente lo siguiente:

Compatible con Chrome v65-67

  • Desconocemos su versión de Selenium Client .

Por lo tanto, existe una clara falta de coincidencia entre ChromeDriver v2.36 y el navegador Chrome v66.0.

Solución

  • Actualice Selenium a los niveles actuales Versión 3.11.0 .
  • Actualice 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 espacio de trabajo de proyecto a través de su IDE y reconstruya su proyecto solo con las dependencias requeridas.
  • Utilice la herramienta CCleaner para borrar todas las tareas del sistema operativo antes y después de la ejecución de su conjunto de pruebas .
  • Si la versión base de su Cliente web es demasiado antigua, desinstálela a través de Revo Uninstaller e instale una versión reciente GA y publicada de Web Client. .
  • Reinicie el sistema .
  • Ejecute su @Test.
undetected Selenium avatar May 13 '2018 11:05 undetected Selenium