python - framework - tutorial django
Selenio Python: espere hasta que se pueda hacer clic en el elemento-no funciona (2)
La sintaxis correcta para esperar explícitamente en python es:
element = WebDriverWait(driver, 20).until(
EC.presence_of_element_located((By.ID, "myElement"))
Mejor que después de lo anterior lo hagas: elemento.click ();
Entonces en tu caso:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
element = WebDriverWait(driver, 20).until(
EC.element_to_be_clickable((By.XPATH, "myXpath")));
element.click();
Mejor que lo sigas. También comparta todo su código para que pueda corregirlo. Su solo código de 1 línea no confunde.
Voy a probar una aplicación web. hay un botón disponible en mi tabla para seleccionar todas las entradas. He intentado:
driver.wait.until(ExpectedCondition.element_to_be_clickable((By.XPATH, "myXpath"))).click()
el selenio hace clic en el botón, pero no pasa nada. (también con send_Keys (Keys.Return)) la aplicación está desarrollada con GXT, creo que hay mucho javascript detrás del botón. ¿Hay posibilidad de esperar hasta que esté listo un cargador de eventos? esperar antes de que un clic resuelva el problema, pero no una solución para las pruebas automatizadas.
También tuve ese problema ... Las aplicaciones web tienen vistas de vistas y Appium a veces se equivoca.
Esto funcionó para mí:
x = webElement.location[''x''] + (webElement.size[''width'']/2)
y = webElement.location[''y''] + (webElement.size[''height'']/2)
print("x: "+x+" - y: "+y)
//I have setted a 200 milli duration for the click...
//I use tap just for Android... If is iOS for me it works better touchAction
driver.tap([(x,y)], 200)
Editar :
He entendido mal tu pregunta ... Lo siento ... Tal vez modifiques tu Xpath para: (no sé si esto funcionará en una aplicación web)
xpath = "//whatever_goes_here[@clickable=''true'']"