1.强制等待(sleep);不智能,设置时间太短,元素没有加载,会报错,设置时间太长会浪费时间。
2.隐性等待(implicitly_wait());等待页面加载完成,不智能,在也页面没加载完时可能需要的元素已加载完。 另外,隐形等待设置是全局性的,在设置过后,以后程序运行过程中不用再设置。
3.显性等待(WebDriverWait);selenium中的wait模块的WebDriverWait()方法,配合until或者until_not方法,再辅助一些判断条件,就可以构成一个场景,每经过多少秒就查看一次元素是否可见,如果可见就停止,如果不可见就继续等待直到可见或超过规定的时间的(报错)。也可以判断某元素在时间内不可见。
expected_conditions模块中提供了很多可以提供判断的条件。
title_is; title_contains 验证传入的参数title是否等于或包含等于driver.title
presence_of_element_located; presence_of_all_elements_located 验证元素是否出现,传入的参数为元组类型,
一个只要一个符合条件的元素加载出来就通过,另一个必须所有符合条件的元素都加载出来。