主頁(yè) > 知識(shí)庫(kù) > java selenium智能等待頁(yè)面加載完成示例代碼

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

熱門(mén)標(biāo)簽:400電話唐山辦理 地圖標(biāo)注位置怎么弄圖 威力最大的電銷機(jī)器人 旅游地圖標(biāo)注線路 電銷專用外呼線路 電話機(jī)器人鑰匙扣 漯河外呼調(diào)研線路 電銷外呼系統(tǒng)是違法的嗎 廣西房產(chǎn)智能外呼系統(tǒng)推薦

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快, 我們需要寫(xiě)一段自動(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ì)本站的支持!

您可能感興趣的文章:
  • Java selenium截圖操作的實(shí)現(xiàn)
  • selenium+java+chrome環(huán)境搭建的方法步驟
  • java+selenium實(shí)現(xiàn)自動(dòng)化打開(kāi)頁(yè)面的方法
  • selenium+java破解極驗(yàn)滑動(dòng)驗(yàn)證碼的示例代碼
  • Java selenium處理極驗(yàn)滑動(dòng)驗(yàn)證碼示例
  • java selenium 操作彈出窗口示例代碼
  • java selenium操作彈出對(duì)話框示例講解
  • java selenium 操作瀏覽器實(shí)例
  • selenium+java中用js來(lái)完成日期的修改

標(biāo)簽:焦作 欽州 無(wú)錫 湘西 綏化 試駕邀約 銅陵 湖北

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《java selenium智能等待頁(yè)面加載完成示例代碼》,本文關(guān)鍵詞  java,selenium,智能,等待,頁(yè)面,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《java selenium智能等待頁(yè)面加載完成示例代碼》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于java selenium智能等待頁(yè)面加載完成示例代碼的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章