selenium測試(Java)--關閉視窗(二十)

來源:互聯網
上載者:User

標籤:ring   iterator   返回   pen   win   except   利用   code   port   

quit方法:退出相關的驅動程式和關閉所有視窗

close方法:關閉當前視窗

package com.test.closewindow;import java.util.Iterator;import java.util.Set;import org.openqa.selenium.By;import org.openqa.selenium.JavascriptExecutor;import org.openqa.selenium.WebDriver;import org.openqa.selenium.firefox.FirefoxDriver;public class WindowsClose {    public static void main(String[] args) {        WebDriver driver = new FirefoxDriver();        driver.get("http://www.baidu.com");        driver.manage().window().maximize();        String searchHandle = driver.getWindowHandle();        String newsHandle = null;        System.out.println("baidu search handle : " + searchHandle);        // 擷取百度新聞的串連,然後利用js開啟一個新的視窗        waitTime(3000);        String href = driver.findElement(By.cssSelector("[name=tj_trnews]")).getAttribute("href");        System.out.println("the link of news is : " + href);        JavascriptExecutor executor = (JavascriptExecutor) driver;        executor.executeScript("window.open(‘" + href + "‘)");        waitTime(3000);        Set<String> handles = driver.getWindowHandles();        Iterator iterator = handles.iterator();        Iterator iterator2 = handles.iterator();        // 進入百度新聞視窗,並擷取title驗證        waitTime(3000);        while (iterator.hasNext()) {            String h = (String) iterator.next();            if (h != searchHandle) {                driver.switchTo().window(h);                if (driver.getTitle().contains("百度新聞")) {                    System.out.println("switch to news page successfully");                    newsHandle = driver.getWindowHandle();                    break;                } else {                    continue;                }            }        }        // 返回百度首頁        waitTime(3000);        /*         * 可以直接使用searchHandle來切換,也可以利用遍曆來切換         * driver.switchTo().window(searchHandle);         * if(driver.getTitle().contains("百度一下")){         * System.out.println("switch to search page successfully");         * driver.findElement(By.cssSelector("#kw")).sendKeys(         * "switch successfully"); }         */        while (iterator2.hasNext()) {            String h = (String) iterator2.next();            if (searchHandle.equals(h)) {                driver.switchTo().window(h);                if (driver.getTitle().contains("百度一下")) {                    System.out.println("switch to search page successfully");                    driver.findElement(By.cssSelector("#kw")).sendKeys("switch successfully");                    driver.close();// 只關閉百度首頁                    System.out.println("close search page successfully");                    driver.switchTo().window(newsHandle);// 切換到百度新聞                    System.out.println("當前的title是: " + driver.getTitle());// 擷取title                    waitTime(3000);                    break;                } else {                    continue;                }            }        }        waitTime(3000);        driver.quit();    }    static public void waitTime(int time) {        try {            Thread.sleep(time);        } catch (InterruptedException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }}

執行結果:

 

baidu search handle : {75749f9a-f6b7-4fe6-80ae-dd9e053dd577}
the link of news is : http://news.baidu.com/
switch to news page successfully
switch to search page successfully
close search page successfully
當前的title是: 百度新聞搜尋——全球最大的中文新聞平台

selenium測試(Java)--關閉視窗(二十)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.