隐式等待
查询一个元素时,如果一直查询不到就会每隔一段时间查询一次。针对的是全局的元素
driver.implicitly_wait(10)
显式等待
1.time.sleep(10) -----》必须要等待10S,线程休眠10S,也称作“强制等待”
2.WebDriverWait------》最好的方法,最多等待15S,只要查询到就不会多等待1S。
如果没有满足until中的条件,就会在这里等待15秒,15秒内没有等到就会抛出异常。针对的是特定的元素,一般是每500ms查询一次。
inputemail = WebDriverWait(driver,15).until(EC.presence_of_element_located((By.NAME, 'loginfmt')))
看到((By.NAME, 'loginfmt')),有木有人同我一样会觉得为什么会有两个括号,答案就是里面是元组类型的数据。
针对这篇文章https://blog.youkuaiyun.com/xd060606/article/details/86503598,里面出现报错,猜测是页面未加载,所以解决方案为增加time.sleep(10),有同志指出还有一种情况是页面加载超时,这种时候可以使用WebDriverWait,如果超出设置的等待时间,则抛出异常。