Selenium Java Web 自動化實踐總結(四)等待

經過前三篇文章,我們現在可以基本已經可以寫簡單運行步驟了。爲了保證有充足的定位等待時間我們用了sleep方法,確定就是我們每次都要增加這樣的等待方法,並不好用。selenium自帶了兩種等待方法,一種爲顯式等待,一種爲隱式等待。建議用顯式等待。

1.隱式等待

  1.     driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS); 設置等待超時時間爲5秒
  2.    driver.manage().timeouts().pageLoadTimeout(5, TimeUnit.SECONDS);設置頁面加載超時時間爲5秒

具體用法,在運行用例前加上這兩句就可以了。

2.顯式等待:

顯式等待的一些方法:

  1. //標題是不是“百度一下,你就知道”

          new WebDriverWait(driver,5).until(ExpectedConditions.titleIs("百度一下,你就知道"));

     2.//標題是不是包含“百度一下”

       new WebDriverWait(driver,5).until(ExpectedConditions.titleContains("百度一下"));
     3.//判斷該元素是否被加載在DOM中,並不代表該元素一定可見        
       new WebDriverWait(driver,5).until(ExpectedConditions.presenceOfElementLocated(By.xpath("//*[@id='kw']")));
     4.//判斷元素(定位後)是否可見
        new WebDriverWait(driver,5).until(ExpectedConditions.visibilityOf(driver.findElement(By.xpath("//*[@id='kw']"))));
     5.//判斷元素是否可見(非隱藏,並且元素的寬和高都不等以0)
       new WebDriverWait(driver,5).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id='kw']")));

WebElement e1 = new WebDriverWait(driver,5).until(ExpectedConditions.presenceOfElementLocated(By.xpath("//*[@id='kw']")));

等待元素加載出來並定位到。

3.系統等待

Thread.Sleep(5000);

 

 

如果您覺得文章對您有幫助,那就打賞下作者吧。如果您有問題需要諮詢,或者交流心得。請添加qq羣:829468634。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章