Python selenium: wait until element is clickable - not working
我将测试一个网络应用程序。 我的表格中有一个按钮可以选择所有条目。
我试过了:
1 | driver.wait.until(ExpectedCondition.element_to_be_clickable((By.XPATH,"myXpath"))).click() |
硒单击按钮,但是什么也没有发生。 (也与send_Keys(Keys.Return)一起使用),该应用程序是使用GXT开发的,我觉得按钮后面有很多JavaScript。 是否有可能等到事件加载器准备就绪? 等待点击解决问题,但不是自动测试的解决方案。
python中显式等待的正确语法是:
1 2 | element = WebDriverWait(driver, 20).until( EC.presence_of_element_located((By.ID,"myElement"))) |
更好的是,经过上述操作,您可以:
element.click();
因此,在您的情况下:
1 2 3 4 5 6 7 8 | 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(); |
最好您遵循它。 同时分享您的整个代码,以便我纠正。 您只需1行代码就不会造成混乱。
我也遇到了这个问题... Web应用程序对视图有意见,而Appium有时会出错。
这对我有用:
1 2 3 4 5 6 7 | 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) |
编辑:
我误会了你的问题...对不起...
也许将您的Xpath修改为:
(不知道这是否适用于网络应用程序)
1 | xpath ="//whatever_goes_here[@clickable='true']" |