强制等待sleep():使用起来最简单的一种等待方式。确定很明显就是设置短了不管用,时间设置长了又浪费时间。
隐式等待implicitly_wait():隐式等待是设置一个等待时间,等待网页是否加载完成,如果在设置的等待时间内网页加载完成,则会立刻执行后续脚本,不会等完设置的时间,如果在设置的时间内网页没有加载完成,则会超时报错。隐式等待依然存在浪费时间的情况,因为现在网页都是随时间局部加载的,只要所需的元素加载出来就可以执行后续脚本了,不需要等完整个网页的加载的,但是隐式等待是必须等完整个页面加载完成,所以依然存在浪费时间的情况。隐式等待在整个浏览器的驱动周期内只需要设置一次。
显示等待webdriverwait():显示等待可以结合until()方法,在until方法中设置等待条件,webdriverwait()中设置等待时间和间隔时间(默认0.5秒),按照设置的间隔时间每隔一定时间判断一下等待条件是否成立,成立则立刻执行后续脚本,不会等完设置的等待时间,如果在设置的等待时间内条件一直不成立,则超时报错。在until中可以设置多种等待条件满足各种等待场景,例如等待某个元素是否出现,出现立刻执行后续脚本,判断框架是否可以切入,可以则直接切入。