thread.sleep() 是线程休眠若干秒,JAVA去实现。等待的时间需要预估的比较准确,但实际上这是很难做到。而且系统一直再等待,预估的长了,时间就白白的浪费了,预估短了,不起作用。
implicitlyWait() 不是休眠,是设置超时时间,是每个driver自己去实现的。以IEDriverServer为例,implicitlyWait()会将一个超时的时间阀值传递给IEDriverServer,在findelement或者findelements的时候,首先去找
web元素,如果没有找到,判断时间否超超过implicitlyWait()传递进来的阀值,如果没有超过,则再次找这个元素,直到找到元素或者时间超过最大阀值。那我们就可以设定一个比较长的超时时间,但同时也不会让程序白白的等待。当然,在没有找到元素之后,IEDriverServer也是会休眠的,默认是250ms。