关于Python Selenium:等到元素可点击:Python Selenium:等到元素可点击-不起作用

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']"