您好,登錄后才能下訂單哦!
在web應用中,常常會遇見點擊某個鏈接會彈出一個新的窗口,或者是相互關聯的web應用 ,這樣要去操作新窗口中的元素,這時就需要主機切換到新窗口進行操作。。WebDriver 提供了switchTo().window()方法可以實現在不同的窗口之間切換。
以下代碼是以新浪網為實例。通過獲取句柄切換到指定窗口,并關閉窗口。當然切換到指定窗口,也可以通過元素定位等方法對元素進行操作。
getWindowHandle():獲得當前窗口句柄。
getWindowHandles():返回的所有窗口的句柄到當前會話。
switchTo().window():用于切換到相應的窗口,與上一節的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); // 設置元素等待時間 ,隱式等待 String sreachHand = driver.getWindowHandle(); // 獲取當前窗口的句柄 driver.findElement(By.linkText("體育")).click(); // 打開新浪官網上的體育鏈接 driver.findElement(By.linkText("娛樂")).click(); // 打開新浪官網上的娛樂鏈接 java.util.Set<String> Handles = driver.getWindowHandles(); System.out.println(Handles.size() + "集合長度"); // 獲取所有窗口的句柄并將句柄放在Set集合中。 // 以下判斷是否是新浪網首頁,如果是則關閉新浪網首頁。 for (String i : Handles) { if (i.equals(sreachHand)) { driver.switchTo().window(i); Thread.sleep(5000); driver.close(); } } }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。