Necesito ayuda para presionar este botón. En esta página el botón "cersa" es ilocalizable con selectores.
https://www.consiglionazionaleforense.it/ricerca-avvocati
También usé el código JS que en la consola funciona pero en el script de python falla con:
selenium.common.exceptions.JavascriptException: Message: javascript error: Cannot read properties of undefined (reading 'click')el script js:
js_code = "button = document.getElementsByClassName('btn-link btn-link--green mt-4'); button[0].click();" driver.execute_script(js_code)Esto debería funcionar
driver.execute_script("document.getElementsByClassName('btn-link btn-link--green mt-4').click()") No estoy seguro de por qué tiene la intención de ir con execute_script , pero si puede ir con el selenio directo, entonces puede usar esto:
driver.find_element(By.XPATH, "//div[@id='ricerca-avvocati']//button[@type='submit']").click()ACTUALIZAR:
Realicé una prueba exhaustiva sobre el problema de por qué el botón no hace clic a pesar de que el elemento se encuentra en el DOM.
El problema es que no se puede hacer clic en el elemento, a menos que haga clic en la casilla de verificación I am not a robot , que si se hace clic en la automatización (o un bot) puede no funcionar (ya que los sitios web detectan las acciones del bot). Intente hacer clic en la casilla de verificación reCaptcha I am not a robot , y si no se lo detecta como un bot, entonces se podrá hacer clic en el elemento y se cumplirá la acción.
Utilicé la función de clic regular, la que le di como un segundo bloque de código, y funciona, pero tuve que forzar manualmente el clic en la casilla de verificación reCaptcha, solo entonces funcionó. Como puede ver, el código salió con el código 0, lo que significa que no hubo errores. Pero la advertencia es el manejo de reCaptcha, que es bastante más difícil con un bot/selenium
Process finished with exit code 0