selenium 多窗口切換的實(shí)現(xiàn)(windows)
在web應(yīng)用中,常常會(huì)遇見點(diǎn)擊某個(gè)鏈接會(huì)彈出一個(gè)新的窗口,或者是相互關(guān)聯(lián)的web應(yīng)用 ,這樣要去操作新窗口中的元素,這時(shí)就需要主機(jī)切換到新窗口進(jìn)行操作。。WebDriver 提供了switchTo().window()方法可以實(shí)現(xiàn)在不同的窗口之間切換。
以下代碼是以新浪網(wǎng)為實(shí)例。通過獲取句柄切換到指定窗口,并關(guān)閉窗口。當(dāng)然切換到指定窗口,也可以通過元素定位等方法對(duì)元素進(jìn)行操作。
getWindowHandle():獲得當(dāng)前窗口句柄。
getWindowHandles():返回的所有窗口的句柄到當(dāng)前會(huì)話。
switchTo().window():用于切換到相應(yīng)的窗口,與上一節(jié)的switchTo().frame()類似,前者用于不同窗口的切換,后者用于不同表單之間的切換。
public static void main(String[] args) throws InterruptedException { System.setProperty("webdriver.chrome.driver", "D:/chromedriver_win32/chromedriver.exe"); ChromeOptions Options = new ChromeOptions(); Options.addArguments("user-data-dir=C:\\Users\\happy\\AppData\\Local\\Google\\Chrome\\User Data"); WebDriver driver = new ChromeDriver(Options); driver.manage().window().maximize(); // 窗口最大化 driver.get("http://www.sina.com.cn/"); driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS); // 設(shè)置元素等待時(shí)間 ,隱式等待 String sreachHand = driver.getWindowHandle(); // 獲取當(dāng)前窗口的句柄 driver.findElement(By.linkText("體育")).click(); // 打開新浪官網(wǎng)上的體育鏈接 driver.findElement(By.linkText("娛樂")).click(); // 打開新浪官網(wǎng)上的娛樂鏈接 java.util.Set<String> Handles = driver.getWindowHandles(); System.out.println(Handles.size() + "集合長(zhǎng)度"); // 獲取所有窗口的句柄并將句柄放在Set集合中。 // 以下判斷是否是新浪網(wǎng)首頁,如果是則關(guān)閉新浪網(wǎng)首頁。 for (String i : Handles) { if (i.equals(sreachHand)) { driver.switchTo().window(i); Thread.sleep(5000); driver.close(); } } }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python GUI教程之在PyQt5中使用數(shù)據(jù)庫的方法
Qt平臺(tái)對(duì)SQL編程有著良好的支持,PyQt5也一并繼承了過來,這篇文章主要介紹了Python GUI教程之在PyQt5中使用數(shù)據(jù)庫的方法,需要的朋友可以參考下2021-09-09Python隨機(jī)生成數(shù)模塊random使用實(shí)例
這篇文章主要介紹了Python隨機(jī)生成數(shù)模塊random使用實(shí)例,本文直接給出示例代碼,需要的朋友可以參考下2015-04-04python實(shí)現(xiàn)MySQL?數(shù)據(jù)庫表格創(chuàng)建?數(shù)據(jù)插入及獲取插入ID操作教程
這篇文章主要為大家介紹了python實(shí)現(xiàn)MySQL?數(shù)據(jù)庫表格創(chuàng)建?數(shù)據(jù)插入及獲取插入ID操作教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11在Python中使用PIL模塊對(duì)圖片進(jìn)行高斯模糊處理的教程
這篇文章主要介紹了在Python中使用PIL模塊對(duì)圖片進(jìn)行高斯模糊處理的教程,這個(gè)無圖形界面的腳本代碼非常簡(jiǎn)單,需要的朋友可以參考下2015-05-05Python編程實(shí)現(xiàn)兩個(gè)文件夾里文件的對(duì)比功能示例【包含內(nèi)容的對(duì)比】
這篇文章主要介紹了Python編程實(shí)現(xiàn)兩個(gè)文件夾里文件的對(duì)比功能,包含內(nèi)容的對(duì)比操作,涉及Python文件與目錄的遍歷、比較、運(yùn)算等相關(guān)操作技巧,需要的朋友可以參考下2017-06-06Python連接Oracle之環(huán)境配置、實(shí)例代碼及報(bào)錯(cuò)解決方法詳解
這篇文章主要介紹了Python連接Oracle之環(huán)境配置、實(shí)例代碼及報(bào)錯(cuò)解決方法詳解,需要的朋友可以參考下2020-02-02Python查找字符串中包含的多個(gè)元素的實(shí)現(xiàn)
本文詳細(xì)介紹了如何使用Python查找字符串中包含的多個(gè)元素,包括基本字符串操作和使用正則表達(dá)式進(jìn)行高級(jí)搜索,具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03