Python selenium: wait until element is clickable - not working

Storm picture Storm · Jan 23, 2015 · Viewed 69.9k times · Source

I will test a web-app. there is a button available in my table to select all entries. I've tried:

driver.wait.until(ExpectedCondition.element_to_be_clickable((By.XPATH, "myXpath"))).click()

selenium clicks on the button, but nothing happens. (also with send_Keys(Keys.Return)) the application is developed with GXT, I thing that there is much javascript behind the button. Is there is possibility to wait until a eventloader is ready? waiting before a click solves the problem, but not a solution for automated testing.

Answer

Helping Hands picture Helping Hands · Jan 23, 2015

Correct syntax for explicit wait in python is :

 element = WebDriverWait(driver, 20).until(
 EC.presence_of_element_located((By.ID, "myElement")))

Better that After above you do : element.click();

So in your case :

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();

Better you follow it. Also share your whole code so I can correct it. Your just 1 line code doing little confuse.