等待的三种方式
1、强制等待(当代码运行到强制等待这一行的时候,无论出于什么情况,都能强制性等待指定的时间,需要通过time模块中的sleep进行导入使用)
第一种方式
在代码开头部分加上from time import sleep,后面等待代码可直接引用sleep()
第二种方式
import.time
time.sleep(3)
2、隐式等待
driver.implicitly_wait()
藏起来的等待,一次性设置,终生有效,针对当下的webdriver的对象,进行等待时长的设置。作用:对webdriver对象设置全局等待,每一次操作,如遇到页面加载或者遇到元素无法定位,择默认进入等待时间,当等待达到最大时长,则进入下一步操作
优势:设置一次即可,而且不会报错
劣势:必须等待页面加载完成后才会进入后续的操作。或者等待超时在进入后续的操作
3、显示等待
光明正大的等,专门用来等待指定的对象
通过导入(导包)from selenium.webdriver.support.wait import WebDriverWait
打开制定的元素,1秒钟内每0.5秒打开俩次
WebDriverWait(driver,1,0.5).until(lambda el: driver.find_element_by_xpath('//*[@id="1"]/h3/a/em').click())
优势:专门对一个制定的元素进行等待
劣势:必须声明,只对单次生效,复杂程度相对于其他等待而言,更高
当多个等待被同时调用的时候,系统的等待时间取决于最长的等待时间



