selenium 多窗口切換的實(shí)現(xiàn)(windows)
在web應(yīng)用中,常常會(huì)遇見(jiàn)點(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ò)獲取句柄切換到指定窗口,并關(guān)閉窗口。當(dāng)然切換到指定窗口,也可以通過(guò)元素定位等方法對(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();
// 打開(kāi)新浪官網(wǎng)上的體育鏈接
driver.findElement(By.linkText("娛樂(lè)")).click();
// 打開(kāi)新浪官網(wǎng)上的娛樂(lè)鏈接
java.util.Set<String> Handles = driver.getWindowHandles();
System.out.println(Handles.size() + "集合長(zhǎng)度");
// 獲取所有窗口的句柄并將句柄放在Set集合中。
// 以下判斷是否是新浪網(wǎng)首頁(yè),如果是則關(guān)閉新浪網(wǎng)首頁(yè)。
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)文章
Pygame Surface創(chuàng)建圖像的實(shí)現(xiàn)
本文主要介紹了Pygame Surface創(chuàng)建圖像的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02
python中的與時(shí)間相關(guān)的模塊應(yīng)用場(chǎng)景分析
本文介紹了Python中與時(shí)間相關(guān)的幾個(gè)重要模塊:`time`、`datetime`、`calendar`、`timeit`、`pytz`和`dateutil`,并詳細(xì)闡述了每個(gè)模塊的主要功能和使用方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧2024-12-12
使用OpenCV實(shí)現(xiàn)人臉圖像卡通化的示例代碼
這篇文章主要介紹了使用OpenCV實(shí)現(xiàn)人臉圖像卡通化的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
通過(guò)python改變圖片特定區(qū)域的顏色詳解
這篇文章主要介紹了通過(guò)python改變圖片特定區(qū)域的顏色詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07
Python中Thop庫(kù)的基本用例和參數(shù)說(shuō)明
這篇文章主要給大家介紹了關(guān)于Python中Thop庫(kù)的基本用例和參數(shù)說(shuō)明的相關(guān)資料,THOP是PyTorch非常實(shí)用的一個(gè)第三方庫(kù),可以統(tǒng)計(jì)模型的 FLOPs 和參數(shù)量,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-05-05

