一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - java selenium智能等待頁面加載完成示例代碼

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

2020-03-19 14:36肖佳 ASP.NET教程

本文主要介紹java selenium智能等待頁面加載,這里整理了相關資料并詳細講解如何實現智能等待頁面加載,有需要的小伙伴可以參考下

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

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

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

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

閱讀目錄

  1. 實例要求

  2. 隱式等待

  3. 顯式等待

實例要求

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<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>

隱式等待

?
1
2
3
4
5
6
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)

頁面元素處于被選中狀態

elementToBeSelected(WebElement element)

頁面元素在頁面中存在

presenceOfElementLocated(By locator)

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

textToBePresentInElement(By locator)

頁面元素值

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

標題 (title)

titleContains(java.lang.String title)

 

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

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

?
1
2
3
4
5
6
7
8
9
public static void testWait2(WebDriver driver)
 {
  driver.get("E:\\StashFolder\\[email protected]\\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 等待頁面加載的資料整理,后續繼續補充相關資料,謝謝大家對本站的支持!

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 99久久久无码国产精品 | 日本高清视频网站 | 乌克兰xxxxx| 冰雪奇缘1完整版免费观看 变形金刚第一部 | 亚洲国产精品久久卡一 | 青青91 | 日本精品vide·ssex日本 | 能播放的欧美同性videos | 高清国产在线观看 | 亚洲国产精品综合久久一线 | 亚洲欧美一区二区三区在线观看 | 欧美黄站 | 男人的天堂久久精品激情 | 白俄罗斯bbbsss| 午夜福利体检 | 热久久天天拍天天拍热久久2018 | 美女把腿开让我 | 亚洲色图第一页 | 大ji吧快给我别停受不了视频 | 婷婷婷色 | 欧美日韩亚洲高清不卡一区二区三区 | 美女和男人差差 | 天使萌痴汉在线中文字幕 | 国产麻豆精品入口在线观看 | 狠狠撸在线播放 | 亚洲欧美久久婷婷爱综合一区天堂 | 久久热这里面只有精品 | 久久精品午夜一区二区福利 | 高清视频一区二区三区 | 鬼吹灯之天星术免费观看 | 男人天堂网在线 | 人生路不在线观看完整版 | 艾秋麻豆果冻剧传媒在线播放 | 国产精品手机视频一区二区 | 4438全国免费观看 | 天堂网在线网站成人午夜网站 | 亚洲免费福利视频 | 毛片手机在线视频免费观看 | 67194在线免费观看 | 四虎影院2019 | 国产91无毒不卡在线观看 |