Python selenium: wait until element is clickable - not working
Solution 1
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.
Solution 2
I had also that problem... Web apps have views over views and Appium sometimes gets wrong.
This worked for me:
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)
Edit:
I misunderstood your question... Sorry... Maybe modifying your Xpath to: (don't know if this will work at a web app)
xpath = "//whatever_goes_here[@clickable='true']"
Storm
I'm a German Student and wanna work in the field of test automation. Preferred tool is Selenium which I'm also using for private stuff.
Updated on July 09, 2022Comments
-
Storm almost 2 years
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.
-
Bee Smears over 9 yearsyou'll need to share the code or url to get thorough assistance. can you do that?
-
-
mercury over 2 yearscan you imagine that
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "myXpath"))).click()
gives the same error for me? btw, did you notice the semicolon?