亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

java selenium  智能等待頁(yè)面加載完成

我們經(jīng)常會(huì)碰到用selenium操作頁(yè)面上某個(gè)元素的時(shí)候, 需要等待頁(yè)面加載完成后, 才能操作。  否則頁(yè)面上的元素不存在,會(huì)拋出異常。 

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

selenium 中提供了非常簡(jiǎn)單,智能的方法,來(lái)判斷元素是否存在. 

閱讀目錄

  1. 實(shí)例要求
  2. 隱式等待
  3. 顯式等待

實(shí)例要求

實(shí)例:set_timeout.html 下面的html 代碼,  點(diǎn)擊click 按鈕5秒后, 頁(yè)面上會(huì)出現(xiàn)一個(gè)紅色的div快, 我們需要寫一段自動(dòng)化腳本智能的去判斷這個(gè)div是否存在, 然后把這個(gè)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秒后,元素還不存在,就會(huì)拋出異常  org.openqa.selenium.NoSuchElementException

顯式等待

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

顯式等待可以自定義等待的條件,用于更加復(fù)雜的頁(yè)面等待條件

等待的條件

WebDriver方法

頁(yè)面元素是否在頁(yè)面上可用和可被單擊

elementToBeClickable(By locator)

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

elementToBeSelected(WebElement element)

頁(yè)面元素在頁(yè)面中存在

presenceOfElementLocated(By locator)

在頁(yè)面元素中是否包含特定的文本

textToBePresentInElement(By locator)

頁(yè)面元素值

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

標(biāo)題 (title)

titleContains(java.lang.String title)

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

如果超過(guò)設(shè)定的最大顯式等待時(shí)間閾值, 這測(cè)試程序會(huì)拋出異常。

public static void testWait2(WebDriver driver)
 {
  driver.get("E:\\StashFolder\\huoli_28@hotmail.com\\Stash\\Tank-MoneyProject\\浦東軟件園培訓(xùn)中心\\我的教材\\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); 
 }

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

相關(guān)文章

  • ASP.NET?Core?MVC緩存Tag?Helpers到內(nèi)存

    ASP.NET?Core?MVC緩存Tag?Helpers到內(nèi)存

    這篇文章介紹了ASP.NET?Core?MVC緩存Tag?Helpers到內(nèi)存的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-02-02
  • MVC4制作網(wǎng)站教程第四章 前臺(tái)欄目瀏覽4.5

    MVC4制作網(wǎng)站教程第四章 前臺(tái)欄目瀏覽4.5

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

    .NET Core跨平臺(tái)串口通訊使用SerialPortStream基礎(chǔ)類庫(kù)問(wèn)題解決

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

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

    經(jīng)常要寫一些.net的程序,對(duì)于數(shù)據(jù)庫(kù)的防注入要求要比較高。這時(shí)我從網(wǎng)上搜了一些代碼。查看了一下主要是通過(guò)HTTPModel來(lái)進(jìn)行對(duì)客戶端轉(zhuǎn)過(guò)來(lái)的數(shù)據(jù)進(jìn)行處理。
    2009-12-12
  • .Net中實(shí)現(xiàn)無(wú)限分類的2個(gè)例子

    .Net中實(shí)現(xiàn)無(wú)限分類的2個(gè)例子

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

    .Net使用Xunit工具進(jìn)行單元測(cè)試

    這篇文章介紹了.Net使用Xunit工具進(jìn)行單元測(cè)試的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • asp.net生成驗(yàn)證碼(純數(shù)字)

    asp.net生成驗(yàn)證碼(純數(shù)字)

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

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

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

    ADO.NET實(shí)現(xiàn)對(duì)SQL Server數(shù)據(jù)庫(kù)的增刪改查示例

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

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

    做網(wǎng)站開(kāi)發(fā)離不開(kāi)緩存,緩存分好多種:服務(wù)器緩存,第三方緩存,瀏覽器緩存等。其中瀏覽器緩存是代價(jià)最小的,因?yàn)闉g覽器緩存依賴的是客戶端,而幾乎不耗費(fèi)服務(wù)器端的資源。
    2009-07-07

最新評(píng)論