显示等待(WebDriverWait().until())
说明:显示等待是单独针对某个元素,设置一个等待时间如10秒,每隔0.5秒检查一次是否出现,如果在10秒之前任何时候出现,则继续向下,超过5秒尚未出现则抛异常。显示等待与隐式等待相对,显示等待必须在每个需要等待的元素前面进行声明。
使用场景:当打开一个新页面,执行第一个元素操作的时候,当元素有加载过程的时候,就需要加上显示等待
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from appium.webdriver.common.mobileby import MobileBy
WebDriverWait(driver,10,0.5).until(EC.presence_of_element_located(MobileBy.ACCESSIBILITY_ID,'')) #等待某一个元素出现才执行下面操作
隐式等待(driver.implicitly_wait())
说明:隐式等待是全局的是针对所有元素,设置等待时间如10秒,如果10秒内出现,则继续向下,否则抛异常。可以理解为在10秒以内,不停刷新看元素是否加载出来。
使用场景:隐式等待只需要声明一次,一般在打开浏览器后进行声明。声明之后对整个drvier的生命周期都有效,后面不用重复声明。隐式等待存在一个问题,那就是程序会一直等待整个页面加载完成,也就是一般情况下你看到浏览器标签栏那个小圈不再转,才会执行下一步,但有时候页面想要的元素早就在加载完成了,但是因为个别js之类的东西特别慢,仍得等到页面全部完成才能执行下一步。
driver.implicitly_wait(10)
强制等待(sleep)
sleep(3)固定等待3s通常不会用到
网友评论