章节十3、1-隐式等待和显式等待

1、当咱们在刷新页面操做时,页面还未加载完成或者说页面正处于加载中的状态,这个时候咱们可能可以定位到元素(也可能没法定位到),但没法进行操做,所以咱们须要设置必定的等待时间,等待页面彻底加载完成后才进行元素定位点击操做。(网络延迟、selenium操做元素时过快等都有可能出现元素没法定位)html

 

2、selenium WebDriver 中有两种等待方式:隐式等待、显式等待。java

 

3、隐式等待。git

一、当咱们告诉driver须要隐式等待时,就是说它会等待全部元素,不会只等待单个元素。github

二、在建立driver时,为浏览器对象设置一个隐式等待时间。若是若是元素不能当即可用就等待一段时间,直到拿到某个元素为止。api

三、在使用隐式等待的时候,实际上浏览器会在你本身设定的时间内不断的刷新页面去寻找咱们须要的元素。浏览器

四、隐式等待的默认等待时间为0。网络

五、若是咱们设置等待时间为3秒,那么WebDriver 就会先等待3秒,在3秒内拿到可用元素后就会当即执行操做,若是还不能在页面上找到可用元素,就会抛出异常。学习

六、不要设置等待时长太长,这样会会影响执行效率。ui

 

4、显式等待spa

一、若是有元素须要很长时间才能加载可用,就可使用显式等待。

二、针对特定元素,为某一元素定制的。让元素等待直到知足某个条件才执行。

三、显式等待时咱们能够定义的,等待某个条件发生,而后再继续执行代码。

WebDriver提供的指望条件有:

alertIsPresent

elementSelectionStateToBe

elementToBeClickable  元素能够点击

elementToBeSelected  元素能够选择

frameToBeAvailableAndSwitch Tolt

invisibilityOfElementLocated

presenceOfElementLocated

textToBePresentInElementLocated

textToBePresentInElementValue

titleContains

titleIs

visibilityOfElementLocated

 全部指望条件有:https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/support/ui/ExpectedConditions.html

 

注意:

一、隐式等待不要和显式等待一块儿混合使用,这样会致使等待时长不可控。

二、显式等待和隐式等待时selenium WebDriver提供的。

三、在前面的演示章节中咱们用到了“Thread.sleep(2000)”,这是java提供的强制等待,表示无论条件是否知足,都会等待2秒后再继续执行其它操做。

 

若是有不明白的小伙伴能够加群“555191854”问我,群里都是软件行业的小伙伴能够相互一块儿学习讨论。

相关文章
相关标签/搜索