1、强制等待
导入定时等待库
from time import sleep 或者 import time
time.sleep(10) # 表示强行等待10s在执行下一句代码 这种等待方式时间到了就会执行下个语句,但比较死板,不能保证在等待的时间内元素真正被加载了出来。而且如果等待的元素已经被加载出来,还需要等待到时间才会执行下一句,浪费时间。
2、 隐性等待
3、显性等待
需要导入的包
from selenium.webdriver.support.wait import WebDriverWait #导入显性等待的包
from selenium.webdriver.support import expected_conditions as EC #判断所需要的元素是否已经被加载出来
from selenium.webdriver.common.by import By #定位
until() 判断,直到返回值为true,执行下一步
nutil_not 判断,直到返回值为false 执行下一步
如下
WebDriverWait(driver, 30, 0.5).until(EC.presence_of_element_located((By.ID, 'com.hanshow.wisepick:id/activity_login_btn')))
#在30s内,每隔0.5s检查一次所需要的元素是否被加载出来,加载出来了就执行下一步,没有加载出来就继续等待,
driver.find_element_by_id("com.hanshow.wisepick:id/activity_login_btn").click() #执行找到的元素