隐式等待:
设置一个超时时间,服务端(Appium)在这个时间内会去不断寻找元素,超时找不到时就会报错,他是全局性的
driver.implicitly_wait(10) # 10秒
driver.manage().timeouts().implicitlyWait(6, TimeUnit.SECONDS);
显示等待:
客户端(用例端),设置一个超时时间和一个元素查找条件,在这个时间内不断寻找这个元素,超时找不到时就会报错
WebDriverWait wait = new WebDriverWait(driver,10);
WebElement webElement = wait.until(ExpectedConditions.elementToBeClickable(By.id("someid")));
总结:
隐式等待和显示等待在本质上是一致的
显示等待多了一个指定元素条件超时时间
在使用场景上,可以使用隐式等待来做一个全局的控制
如果某个控件比较特殊,需要更长的时间加载,比如十几秒或者更长,就可以使用显示等待对其进行单独处理