欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java selenium智能等待頁面加載完成示例代碼

 更新時間:2016年08月15日 09:04:55   作者:肖佳  
本文主要介紹java selenium智能等待頁面加載,這里整理了相關資料并詳細講解如何實現(xiàn)智能等待頁面加載,有需要的小伙伴可以參考下

java selenium  智能等待頁面加載完成

我們經常會碰到用selenium操作頁面上某個元素的時候, 需要等待頁面加載完成后, 才能操作。  否則頁面上的元素不存在,會拋出異常。 

或者碰到AJAX異步加載,我們需要等待元素加載完成后, 才能操作

selenium 中提供了非常簡單,智能的方法,來判斷元素是否存在. 

閱讀目錄

  1. 實例要求
  2. 隱式等待
  3. 顯式等待

實例要求

實例:set_timeout.html 下面的html 代碼,  點擊click 按鈕5秒后, 頁面上會出現(xiàn)一個紅色的div快, 我們需要寫一段自動化腳本智能的去判斷這個div是否存在, 然后把這個div 然后高亮。

<html>
 <head>
  <title>Set Timeout</title>
  <style>
   .red_box {background-color: red; width = 20%; height: 100px; border: none;}
  </style>
  <script>
   function show_div(){
    setTimeout("create_div()", 5000);
   }
 
   function create_div(){
    d = document.createElement('div');
    d.className = "red_box";
    document.body.appendChild(d);
   }
  </script>
 </head>
 <body>
  <button id = "b" onclick = "show_div()">click</button>
 </body>
</html>

隱式等待

  WebDriver driver = new FirefoxDriver();
  driver.get("file:///C:/Users/Tank/Desktop/set_timeout.html"); 
  
  driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
  WebElement element = driver.findElement(By.cssSelector(".red_box"));  
  ((JavascriptExecutor)driver).executeScript("arguments[0].style.border = \"5px solid yellow\"",element); 

其中

driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

意思是, 總共等待10秒, 如果10秒后,元素還不存在,就會拋出異常  org.openqa.selenium.NoSuchElementException

顯式等待

顯式等待 使用ExpectedConditions類中自帶方法, 可以進行顯試等待的判斷。

顯式等待可以自定義等待的條件,用于更加復雜的頁面等待條件

等待的條件

WebDriver方法

頁面元素是否在頁面上可用和可被單擊

elementToBeClickable(By locator)

頁面元素處于被選中狀態(tài)

elementToBeSelected(WebElement element)

頁面元素在頁面中存在

presenceOfElementLocated(By locator)

在頁面元素中是否包含特定的文本

textToBePresentInElement(By locator)

頁面元素值

textToBePresentInElementValue(By locator, java.lang.String text)

標題 (title)

titleContains(java.lang.String title)

只有滿足顯式等待的條件滿足,測試代碼才會繼續(xù)向后執(zhí)行后續(xù)的測試邏輯

如果超過設定的最大顯式等待時間閾值, 這測試程序會拋出異常。

public static void testWait2(WebDriver driver)
 {
  driver.get("E:\\StashFolder\\huoli_28@hotmail.com\\Stash\\Tank-MoneyProject\\浦東軟件園培訓中心\\我的教材\\Selenium Webdriver\\set_timeout.html"); 
  
  WebDriverWait wait = new WebDriverWait(driver, 20);
  wait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector(".red_box")));
  WebElement element = driver.findElement(By.cssSelector(".red_box"));  
  ((JavascriptExecutor)driver).executeScript("arguments[0].style.border = \"5px solid yellow\"",element); 
 }

以上就是對Java selenium 等待頁面加載的資料整理,后續(xù)繼續(xù)補充相關資料,謝謝大家對本站的支持!

相關文章

  • ASP.NET?Core?MVC緩存Tag?Helpers到內存

    ASP.NET?Core?MVC緩存Tag?Helpers到內存

    這篇文章介紹了ASP.NET?Core?MVC緩存Tag?Helpers到內存的方法,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-02-02
  • MVC4制作網站教程第四章 前臺欄目瀏覽4.5

    MVC4制作網站教程第四章 前臺欄目瀏覽4.5

    這篇文章主要為大家詳細介紹了MVC4制作網站教程,前臺欄目瀏覽功能實現(xiàn)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-08-08
  • .NET Core跨平臺串口通訊使用SerialPortStream基礎類庫問題解決

    .NET Core跨平臺串口通訊使用SerialPortStream基礎類庫問題解決

    這篇文章介紹了.NET Core跨平臺串口通訊使用SerialPortStream基礎類庫問題解決,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-01-01
  • asp.net(C#)防sql注入組件的實現(xiàn)代碼

    asp.net(C#)防sql注入組件的實現(xiàn)代碼

    經常要寫一些.net的程序,對于數據庫的防注入要求要比較高。這時我從網上搜了一些代碼。查看了一下主要是通過HTTPModel來進行對客戶端轉過來的數據進行處理。
    2009-12-12
  • .Net中實現(xiàn)無限分類的2個例子

    .Net中實現(xiàn)無限分類的2個例子

    這篇文章主要介紹了.Net中實現(xiàn)無限分類的2個例子,本文直接給出實現(xiàn)代碼,需要的朋友可以參考下
    2015-02-02
  • .Net使用Xunit工具進行單元測試

    .Net使用Xunit工具進行單元測試

    這篇文章介紹了.Net使用Xunit工具進行單元測試的方法,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-06-06
  • asp.net生成驗證碼(純數字)

    asp.net生成驗證碼(純數字)

    前幾天寫了個數字與字母混合的驗證碼技術,今天寫個純數字的驗證碼。這里先寫個類
    2012-06-06
  • .Net Core 2.2升級3.1的避坑指南(小結)

    .Net Core 2.2升級3.1的避坑指南(小結)

    這篇文章主要介紹了.Net Core 2.2升級3.1的避坑指南,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • ADO.NET實現(xiàn)對SQL Server數據庫的增刪改查示例

    ADO.NET實現(xiàn)對SQL Server數據庫的增刪改查示例

    本篇文章主要介紹了ADO.NET實現(xiàn)對SQL Server數據庫的增刪改查示例,非常具有實用價值,需要的朋友可以參考下。
    2017-01-01
  • asp.net 客戶端瀏覽器緩存的Http頭介紹

    asp.net 客戶端瀏覽器緩存的Http頭介紹

    做網站開發(fā)離不開緩存,緩存分好多種:服務器緩存,第三方緩存,瀏覽器緩存等。其中瀏覽器緩存是代價最小的,因為瀏覽器緩存依賴的是客戶端,而幾乎不耗費服務器端的資源。
    2009-07-07

最新評論