最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java Selenium實現(xiàn)多窗口切換的示例代碼

 更新時間:2020年09月01日 10:12:08   作者:蟲師  
這篇文章主要介紹了Java Selenium實現(xiàn)多窗口切換的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

在web應(yīng)用中,常常會遇見點擊某個鏈接會彈出一個新的窗口,或者是相互關(guān)聯(lián)的web應(yīng)用 ,這樣要去操作新窗口中的元素,就需要主機切換到新窗口進行操作。WebDriver 提供了switchTo().window()方法可以實現(xiàn)在不同的窗口之間切換。

  • 獲取當(dāng)前窗口瀏覽器句柄:driver.getWindowHandle();
  • 獲取所有窗口的瀏覽器句柄到當(dāng)前會話:driver.getWindowHandles();
  • 用于不同窗口的切換:switchTo().window();

在頁面操作過程中有時候點擊某個鏈接會彈出新的窗口, 這時就需要主機切換到新打開的窗口上進行操作。WebDriver提供了switchTo().window()方法可以實現(xiàn)在不同的窗口之間切換。

以百度首頁和百度注冊頁為例,在兩個窗口之間的切換如下圖。

實現(xiàn)窗口切換的代碼如下:

import java.util.Set;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class MoreWindows {

 public static void main(String[] arge) throws InterruptedException{

  WebDriver driver = new ChromeDriver();
  driver.get("https://www.baidu.com");

  //獲得當(dāng)前窗口句柄
  String search_handle = driver.getWindowHandle();

  //打開百度注冊窗口
  driver.findElement(By.linkText("登錄")).click();
  Thread.sleep(3000);
  driver.findElement(By.linkText("立即注冊")).click();

  //獲得所有窗口句柄
  Set<String> handles = driver.getWindowHandles();

  //判斷是否為注冊窗口, 并操作注冊窗口上的元素
  for(String handle : handles){
   if (handle.equals(search_handle)==false){
    //切換到注冊頁面
    driver.switchTo().window(handle);
    System.out.println("now register window!");
    Thread.sleep(2000);
    driver.findElement(By.name("userName")).clear();
    driver.findElement(By.name("userName")).sendKeys("user name");
    driver.findElement(By.name("phone")).clear();
    driver.findElement(By.name("phone")).sendKeys("phone number");
    //......
    Thread.sleep(2000);
    //關(guān)閉當(dāng)前窗口
    driver.close();
   }
  }
  Thread.sleep(2000);

  driver.quit();
 }
}

在本例中所涉及的新方法如下:

  • getWindowHandle(): 獲得當(dāng)前窗口句柄。
  • getWindowHandles(): 返回的所有窗口的句柄到當(dāng)前會話。
  • switchTo().window(): 用于切換到相應(yīng)的窗口,與上一節(jié)的switchTo().frame()類似,前者用于不同窗口的切換, 后者用于不同表單之間的切換。

到此這篇關(guān)于Java Selenium實現(xiàn)多窗口切換的示例代碼的文章就介紹到這了,更多相關(guān)Java Selenium 多窗口切換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • jd-easyflow中inclusive的用法示例小結(jié)

    jd-easyflow中inclusive的用法示例小結(jié)

    文章介紹了在jd-easyflow中使用inclusive進行條件分支配置的方法,當(dāng)conditionType設(shè)置為inclusive時,所有條件分支都會被評估,而不僅僅是一個條件滿足就終止,本文給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • java使用Cookie判斷用戶登錄情況的方法

    java使用Cookie判斷用戶登錄情況的方法

    這篇文章主要為大家詳細介紹了java使用Cookie判斷用戶登錄情況,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Kotlin語言編程Regex正則表達式實例詳解

    Kotlin語言編程Regex正則表達式實例詳解

    這篇文章主要為大家介紹了Kotlin語言編程Regex正則表達式實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • springboot整合dubbo設(shè)置全局唯一ID進行日志追蹤的示例代碼

    springboot整合dubbo設(shè)置全局唯一ID進行日志追蹤的示例代碼

    這篇文章主要介紹了springboot整合dubbo設(shè)置全局唯一ID進行日志追蹤,本文通過圖文示例相結(jié)合給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10
  • 例舉fastJson和jackson轉(zhuǎn)json的區(qū)別

    例舉fastJson和jackson轉(zhuǎn)json的區(qū)別

    今天小編就為大家分享一篇關(guān)于例舉fastJson和jackson轉(zhuǎn)json的區(qū)別,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • springboot如何配置嵌套map和list參數(shù)

    springboot如何配置嵌套map和list參數(shù)

    這篇文章主要介紹了springboot如何配置嵌套map和list參數(shù)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • 淺析Disruptor高性能線程消息傳遞并發(fā)框架

    淺析Disruptor高性能線程消息傳遞并發(fā)框架

    這篇文章主要為大家介紹了Disruptor高性能線程消息傳遞并發(fā)框架的簡單分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2022-03-03
  • 聊聊maven的pom.xml中的exclusions標(biāo)簽的作用

    聊聊maven的pom.xml中的exclusions標(biāo)簽的作用

    這篇文章主要介紹了maven的pom.xml中的exclusions標(biāo)簽的作用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • SpringBoot2.6.x默認禁用循環(huán)依賴后的問題解決

    SpringBoot2.6.x默認禁用循環(huán)依賴后的問題解決

    由于SpringBoot從底層逐漸引導(dǎo)開發(fā)者書寫規(guī)范的代碼,同時也是個憂傷的消息,循環(huán)依賴的應(yīng)用場景實在是太廣泛了,所以SpringBoot 2.6.x不推薦使用循環(huán)依賴,本文給大家說下SpringBoot2.6.x默認禁用循環(huán)依賴后的應(yīng)對策略,感興趣的朋友一起看看吧
    2022-02-02
  • JAVA 深層拷貝 DeepCopy的使用詳解

    JAVA 深層拷貝 DeepCopy的使用詳解

    最近需要用到比較兩個對象屬性的變化,其中一個是oldObj,另外一個是newObj,oldObj是newObj的前一個狀態(tài),所以需要在newObj的某個狀態(tài)時,復(fù)制一個一樣的對象,由于JAVA不支持深層拷貝,因此專門寫了一個方法
    2013-07-07

最新評論

射洪县| 康马县| 青浦区| 天柱县| 平阳县| 额尔古纳市| 祁东县| 新乡市| 临洮县| 东乡县| 元江| 崇仁县| 张掖市| 农安县| 沽源县| 永平县| 钟山县| 安吉县| 东丽区| 克东县| 嘉善县| 海口市| 和田市| 定边县| 南溪县| 宜兴市| 封丘县| 上高县| 英德市| 中西区| 上犹县| 黄梅县| 友谊县| 松原市| 成安县| 什邡市| 新巴尔虎左旗| 衢州市| 赣榆县| 娄底市| 丽江市|