亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

java+selenium實現(xiàn)自動化操作瀏覽器

 更新時間:2025年05月14日 09:49:17   作者:北京-宏哥  
在Web自動化的操作中,我們通常需要使用一些方法來操作瀏覽器,這篇文章主要來和大家介紹一下在自動化測試的時候,我們常見的一些瀏覽器操作有哪些,希望對大家有一定的幫助

1.簡介

在Web自動化的操作中,我們通常需要使用一些方法來操作瀏覽器,今天就來學(xué)習(xí)一下。這一篇宏哥主要是介紹一下,在自動化測試的時候,我們常見的一些瀏覽器操作有哪些,宏哥將會一一介紹和講解。

2.瀏覽器操作

 宏哥首先介紹一下常用的基本操作,然后再通過具體實例給小伙伴或者童鞋們演示一下。

2.1打開瀏覽器 

//IE瀏覽器
System.setProperty("webdriver.ie.driver", ".\\Tools\\IEDriverServer.exe");
WebDriver driver = new InternetExplorerDriver();
 
//Chrome
System.setProperty("webdriver.chrome.driver", ".\\Tools\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
 
//FireFox(自定義安裝)
System.setProperty("webdriver.firefox.bin", "D:\\ProgramFiles\\Mozilla Firefox\\firefox.exe");
//FireFox版本大于48,默認安裝
System.setProperty("webdriver.firefox.marionette", ".\\Tools\\geckodriver.exe");
//FireFox版本小于48
System.setProperty("webdriver.firefox.marionette", ".\\Tools\\geckodriver.exe");
WebDriver driver = new FirefoxDriver();

2.2打開url

//兩種方式實現(xiàn)的效果一樣
String url = "http://www.baidu.com";
driver.get(url);
driver.navigate().to(url);

2.3瀏覽器最大化

 窗口最大化,maximize()方法可以將瀏覽器窗口最大化

// 瀏覽器窗口最大
driver.manage().window().maximize();

2.4瀏覽器刷新

 refresh()方法可以在自動化測試的時候刷新當前頁面

// 當前頁刷新
driver.navigate().refresh();

2.5瀏覽器前進

 forward()方法可以模擬瀏覽器的前進操作

// 前進,跳轉(zhuǎn)到下一頁
driver.navigate().forward ();

2.6瀏覽器后退

 back()方法可以模擬瀏覽器的回退操作

// 后退,跳轉(zhuǎn)到上一頁
driver.navigate().back();

2.7瀏覽器位置和設(shè)置窗口位置

瀏覽器的位置設(shè)置getPosition()

* 注意targetPosition是一個點對象,把一個點作為參數(shù)傳入

 * 聲明一個 point 對象,兩個 150 表示瀏覽器的位置相對于屏幕左上角(0,0)的橫縱坐標舉例

Point targetPosition = new Point(150,150);
driver.manage().window().setPosition(targetPosition);
System.out.println(driver.manage().window().getPosition());

2.8瀏覽器窗口大小

獲得窗口大小,getSize()方法能夠獲得窗口的尺寸信息,返回一個Dimension對象,該對象包括了窗口的高度,寬度信息

 *注意targetSize是一個對象傳入,也不可以直接寫成 1366*768
 * 1366 * 768          表示窗口的長和寬

Dimension targetSize = new Dimension(1366,768);
driver.manage().window().setSize(targetSize);
System.out.println(driver.manage().window().getSize());

2.9返回當前的url和title

// 返回當前頁面的Ttile
String title = driver.getTitle();
// 返回當前頁面的url
String currentUrl = driver.getCurrentUrl();

2.10關(guān)閉瀏覽器

// 關(guān)閉當前頁面
driver.close();
// 關(guān)閉由selenium所啟動的所有頁面
driver.quit();

3.項目實戰(zhàn)

以度娘為例,打開瀏覽器設(shè)置瀏覽器的位置,然后再設(shè)置瀏覽器的大小。最后將瀏覽器最大化。查詢“北京宏哥”后,刷新頁面執(zhí)行回退到百度首頁,然后有執(zhí)行前進進入到搜索“北京宏哥”頁面。

3.1代碼設(shè)計

3.2參考代碼

package lessons;

import org.openqa.selenium.By;
import org.openqa.selenium.Dimension;
import org.openqa.selenium.Point;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;

/**
 * @author 北京-宏哥
 *
 * 2021年9月6日
 */
public class Windows {
    
    public static void main(String[] args) throws InterruptedException {
        //打開瀏覽器 
        System.setProperty("webdriver.gecko.driver", ".\\Tools\\chromedriver.exe"); //指定驅(qū)動路徑

        WebDriver driver =new ChromeDriver();
        
        //設(shè)置瀏覽器出現(xiàn)的位置
          driver.manage().window().setPosition(new Point(1350, 200));
          Thread.sleep(1000);
          //設(shè)置瀏覽器大小
          driver.manage().window().setSize(new Dimension(200, 500));
          Thread.sleep(1000);
          //獲取瀏覽器位置和大小信息
          System.out.println("瀏覽器所在位置:"+driver.manage().window().getPosition());
          System.out.println("瀏覽器大小:"+driver.manage().window().getSize());
          //瀏覽器滿屏,覆蓋任務(wù)欄
        //webDriver.manage().window().fullscreen();
          //瀏覽器最大化,不覆蓋任務(wù)欄
          driver.manage().window().maximize();
          System.out.println("瀏覽器最大化");
        //打開URL
        driver.get("http://www.baidu.com");
        System.out.println("打開URL");
        Thread.sleep(2000);
        
        //輸入“北京宏哥”,點擊“百度一下”
        WebElement SearchBox  = driver.findElement(By.xpath( "http://*[@id='kw']" ));
        SearchBox.sendKeys("北京宏哥");
        WebElement SearchButton  = driver.findElement(By.xpath("http://*[@id='su']"));
        
        SearchButton.click();
        
        // 當前頁刷新
        driver.navigate().refresh();
        System.out.println("刷新當前頁面");
        Thread.sleep(2000);
        //執(zhí)行瀏覽器后退
        driver.navigate().back();
        System.out.println("back... this www.baidu.com");
        Thread.sleep(2000);
 
        //執(zhí)行瀏覽器前進
        driver.navigate().forward();
        System.out.println("forward..."+driver.getCurrentUrl ());
        Thread.sleep(2000);
 
        driver.quit();
        Thread.sleep(2000);

        driver.quit();
    }

}

3.3運行代碼

1.運行代碼,右鍵Run AS->java Application,控制臺輸出,如下圖所示:

2.運行代碼后電腦端的瀏覽器的動作,可以看到查詢“北京宏哥”后,刷新頁面執(zhí)行回退到百度首頁,然后有執(zhí)行前進進入到搜索“北京宏哥”頁面。

4.小結(jié)

在代碼報錯處,提示導(dǎo)入包,要注意導(dǎo)入selenium的包(一個java包和一個selenium包),否則還報錯,沒有這個方法。如下圖所示:

5.拓展

其他方法

這些基本上在前邊的文章中宏哥都介紹過了這里就簡單的提一下,不做贅述了。

// 返回當前的瀏覽器的窗口句柄
 String currentWindowHandle = driver.getWindowHandle()
 // 返回當前的瀏覽器的所有窗口句柄
 Set<String> allWindowHandles = driver.getWindowHandles();
 // 返回當前頁面的源碼
 String currentPageSource = getPageSource()

以上就是java+selenium實現(xiàn)自動化操作瀏覽器的詳細內(nèi)容,更多關(guān)于java selenium操作瀏覽器的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • springboot多數(shù)據(jù)源配合docker部署mysql主從實現(xiàn)讀寫分離效果

    springboot多數(shù)據(jù)源配合docker部署mysql主從實現(xiàn)讀寫分離效果

    這篇文章主要介紹了springboot多數(shù)據(jù)源配合docker部署mysql主從實現(xiàn)讀寫分離,通過使用docker獲取mysql鏡像,具體內(nèi)容詳情跟隨小編一起看看吧
    2021-09-09
  • 詳解Spring MVC的異步模式(高性能的關(guān)鍵)

    詳解Spring MVC的異步模式(高性能的關(guān)鍵)

    本篇文章主要介紹了詳解Spring MVC的異步模式(高性能的關(guān)鍵),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • 詳解SpringCloud Gateway 2020.0.2最新版

    詳解SpringCloud Gateway 2020.0.2最新版

    這篇文章主要介紹了SpringCloud Gateway 2020.0.2最新版,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • springBoot @Enable* 注解的使用

    springBoot @Enable* 注解的使用

    這篇文章主要介紹了springBoot @Enable* 注解的使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • SpringBoot實現(xiàn)動態(tài)配置及項目打包部署上線功能

    SpringBoot實現(xiàn)動態(tài)配置及項目打包部署上線功能

    本文講解的是如何使用Spring動態(tài)配置文件,實現(xiàn)不同環(huán)境不同配置,靈活切換配置文件;以及講述了如何使用?Maven?打包,然后上傳至Linux服務(wù)器進行部署,對SpringBoot打包部署上線過程感興趣的朋友一起看看吧
    2022-10-10
  • 一篇文章帶你學(xué)會Spring?MVC表單標簽

    一篇文章帶你學(xué)會Spring?MVC表單標簽

    Spring MVC表單標簽是網(wǎng)頁的可配置和可重復(fù)使用的構(gòu)建塊,下面這篇文章主要給大家介紹了如何通過一篇文章學(xué)會Spring?MVC表單標簽的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-03-03
  • SpringCloud @RefreshScope注解源碼層面深入分析

    SpringCloud @RefreshScope注解源碼層面深入分析

    @RefreshScope注解能幫助我們做局部的參數(shù)刷新,但侵入性較強,需要開發(fā)階段提前預(yù)知可能的刷新點,并且該注解底層是依賴于cglib進行代理的,所以不要掉入cglib的坑,出現(xiàn)刷了也不更新情況
    2023-04-04
  • MyBatis sql中test如何判斷Boolean

    MyBatis sql中test如何判斷Boolean

    這篇文章主要介紹了MyBatis sql中test如何判斷Boolean,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • 解讀classpath讀取resources目錄下的文件

    解讀classpath讀取resources目錄下的文件

    這篇文章主要介紹了解讀classpath讀取resources目錄下的文件,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • 如何在spring事務(wù)提交之后進行異步操作

    如何在spring事務(wù)提交之后進行異步操作

    這篇文章主要為大家介紹了如何在spring事務(wù)提交之后進行異步操作,這些異步操作必須得在該事務(wù)成功提交后才執(zhí)行,回滾則不執(zhí)行,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2023-09-09

最新評論