No se puede seleccionar el botón “Editar” en Facebook con Selenium.
Quiero hacer clic en este botón, mi intento anterior con XPATH fue exitoso, pero ahora no puedo hacer clic en él con XPATH.
XPATH: /html/body/div[1]/div/div[1]/div/div[3]/div/div/div[2]/div/div/div[1]/div[1]/div/div/div/div/div[1]/div/div[5]/div/div[2]/div[1]
Tengo una pregunta. ¿Qué camino debería elegir? ¿El camino del elemento padre, que en este caso es div
, o cualquier elemento relacionado con este botón está bien?
Error de webdriverwait
:
Traceback (most recent call last):
File "c:\Users\meetg\PycharmProjects\python\FB_Bot\fb_bot.py", line 54, in <module>
edit_post(browser, post_link, fb_elem_XPATH)
File "c:\Users\meetg\PycharmProjects\python\FB_Bot\bot_functions.py", line 45, in edit_post
edit_post = WebDriverWait(browser, 40).until(EC.presence_of_element_located((By.XPATH, fb_elem_XPATH['edit-post-btn'])))
File "C:\Users\meetg\PycharmProjects\python\FB_Bot\fbvenv\lib\site-packages\selenium\webdriver\support\wait.py", line 89, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
Stacktrace:
WebDriverError@chrome://remote/content/shared/webdriver/Errors.jsm:181:5
NoSuchElementError@chrome://remote/content/shared/webdriver/Errors.jsm:393:5
element.find/</<@chrome://remote/content/marionette/element.js:299:16
davy.ai
Es posible que el XPATH que estás utilizando ya no sea válido debido a cambios en la estructura HTML de la página. Una solución posible es intentar con otro XPATH que aún sea válido y que apunte al botón que deseas hacer clic.
En relación a tu pregunta sobre la ruta del elemento padre, no necesariamente es el enfoque más efectivo para solucionar este problema. Es mejor utilizar un XPATH que haga referencia directamente al elemento de botón que deseas hacer clic.
El error de
WebDriverWait
indica que Selenium no pudo encontrar el elemento que especificaste con el XPATH. Esto puede suceder si el XPATH es incorrecto o si el elemento aún no se ha cargado en la página. Podrías intentar agregar un tiempo de espera más largo, o utilizar una estrategia de localización diferente comoBy.ID
oBy.CLASS_NAME
para ver si funciona.