在selenium webdriver中,为什么我们需要在使用显式等待之前将隐式等待设置为0

时间:2016-11-02 21:45:22

标签: selenium selenium-webdriver

在Selenium Web驱动程序中,为什么我们需要在使用显式等待之前将隐式等待设置为0?

2 个答案:

答案 0 :(得分:0)

混合隐式和显式等待可能会导致意外超时。

这样做会导致不可预测的等待时间。例如,设置10秒的隐式等待和15秒的显式等待可能会导致20秒后发生超时。

答案 1 :(得分:0)

隐式等待:专门为元素设置。设置后,如果Web驱动程序由于其可用性而无法立即找到它,它将继续轮询(大约250毫秒)DOM以获取该元素。

如果元素在指定的时间内不可用,则会引发NoSuchElementException。默认设置为零

显式等待:为驱动程序设置显式等待。

可能存在特定元素加载超过一分钟的情况。在这种情况下,你绝对不想为Implicit wait设置一个巨大的时间,就像你这样做一样,你的浏览器将会为每个元素等待相同的时间。

为避免这种情况,您只需在所需元素上单独设置一个时间即可。通过遵循这一点,您的浏览器隐含的等待时间对于每个元素都是短的,并且对于特定元素它将是大的。

要阅读并了解有关webdriver等待的更多信息,请阅读: http://www.seleniumhq.org/docs/04_webdriver_advanced.jsp