我将测试一个网络应用程序。我的表格中有一个按钮可供选择所有条目。 我试过了:
driver.wait.until(ExpectedCondition.element_to_be_clickable((By.XPATH, "myXpath"))).click()
selenium点击按钮,但没有任何反应。 (还有send_Keys(Keys.Return))应用程序是用GXT开发的,我的事情是按钮背后有很多javascript。是否有可能等到事件加载器准备好了?在点击之前等待解决问题,但不是自动测试的解决方案。
答案 0 :(得分:45)
在python中显式等待的正确语法是:
element = WebDriverWait(driver, 20).until(
EC.presence_of_element_located((By.ID, "myElement"))
更好的是,在上面之后你做了: 的 element.click(); 强>
所以在你的情况下:
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行代码很少混淆。
答案 1 :(得分:2)
我也有这个问题......网络应用程序可以查看视图,而Appium有时会出错。
这对我有用:
/* Deallocation function included in DLL that matches allocation
* functions used in library
*/
void DLL_Free(void *ptr)
{
free(ptr);
}
修改强>:
我误解了你的问题......对不起...... 也许将您的Xpath修改为: (不知道这是否适用于网络应用程序)
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)