最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java+selenium實(shí)現(xiàn)自動(dòng)化操作瀏覽器

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

1.簡(jiǎn)介

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

2.瀏覽器操作

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

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,默認(rèn)安裝
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

//兩種方式實(shí)現(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()方法可以在自動(dòng)化測(cè)試的時(shí)候刷新當(dāng)前頁(yè)面

// 當(dāng)前頁(yè)刷新
driver.navigate().refresh();

2.5瀏覽器前進(jìn)

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

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

2.6瀏覽器后退

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

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

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

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

* 注意targetPosition是一個(gè)點(diǎn)對(duì)象,把一個(gè)點(diǎn)作為參數(shù)傳入

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

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

2.8瀏覽器窗口大小

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

 *注意targetSize是一個(gè)對(duì)象傳入,也不可以直接寫成 1366*768
 * 1366 * 768          表示窗口的長(zhǎng)和寬

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

2.9返回當(dāng)前的url和title

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

2.10關(guān)閉瀏覽器

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

3.項(xiàng)目實(shí)戰(zhàn)

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

3.1代碼設(shè)計(jì)

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ū)動(dòng)路徑

        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);
        
        //輸入“北京宏哥”,點(diǎn)擊“百度一下”
        WebElement SearchBox  = driver.findElement(By.xpath( "http://*[@id='kw']" ));
        SearchBox.sendKeys("北京宏哥");
        WebElement SearchButton  = driver.findElement(By.xpath("http://*[@id='su']"));
        
        SearchButton.click();
        
        // 當(dāng)前頁(yè)刷新
        driver.navigate().refresh();
        System.out.println("刷新當(dāng)前頁(yè)面");
        Thread.sleep(2000);
        //執(zhí)行瀏覽器后退
        driver.navigate().back();
        System.out.println("back... this www.baidu.com");
        Thread.sleep(2000);
 
        //執(zhí)行瀏覽器前進(jìn)
        driver.navigate().forward();
        System.out.println("forward..."+driver.getCurrentUrl ());
        Thread.sleep(2000);
 
        driver.quit();
        Thread.sleep(2000);

        driver.quit();
    }

}

3.3運(yùn)行代碼

1.運(yùn)行代碼,右鍵Run AS->java Application,控制臺(tái)輸出,如下圖所示:

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

4.小結(jié)

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

5.拓展

其他方法

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

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

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

相關(guān)文章

  • Spring中的BeanDefinition注冊(cè)流程詳解

    Spring中的BeanDefinition注冊(cè)流程詳解

    這篇文章主要介紹了Spring中的BeanDefinition注冊(cè)流程詳解,  NamespaceHandler簡(jiǎn)單來(lái)說(shuō)就是命名空間處理器,Spring為了開放性提供了NamespaceHandler機(jī)制,這樣我們就可以根據(jù)需求自己來(lái)處理我們?cè)O(shè)置的標(biāo)簽元素,需要的朋友可以參考下
    2023-12-12
  • Springboot中JWT登錄校驗(yàn)及其攔截器實(shí)現(xiàn)方法

    Springboot中JWT登錄校驗(yàn)及其攔截器實(shí)現(xiàn)方法

    這篇文章主要介紹了Springboot中JWT登錄校驗(yàn)及其攔截器實(shí)現(xiàn)方法的相關(guān)資料,包括引入Maven坐標(biāo)、獲取Token、JWT攔截器的實(shí)現(xiàn)和配置,通過(guò)這些步驟可以實(shí)現(xiàn)后端對(duì)用戶登錄的身份校驗(yàn),需要的朋友可以參考下
    2025-11-11
  • mall整合SpringTask實(shí)現(xiàn)定時(shí)任務(wù)的方法示例

    mall整合SpringTask實(shí)現(xiàn)定時(shí)任務(wù)的方法示例

    這篇文章主要介紹了mall整合SpringTask實(shí)現(xiàn)定時(shí)任務(wù)的方法示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-06-06
  • Mybatis查詢時(shí),區(qū)分大小寫操作

    Mybatis查詢時(shí),區(qū)分大小寫操作

    這篇文章主要介紹了Mybatis查詢時(shí),區(qū)分大小寫操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-12-12
  • SpringBoot?整合?Spring-Session?實(shí)現(xiàn)分布式會(huì)話項(xiàng)目實(shí)戰(zhàn)

    SpringBoot?整合?Spring-Session?實(shí)現(xiàn)分布式會(huì)話項(xiàng)目實(shí)戰(zhàn)

    本文主要介紹了SpringBoot?整合?Spring-Session?實(shí)現(xiàn)分布式會(huì)話項(xiàng)目實(shí)戰(zhàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • java實(shí)現(xiàn)水果超市管理系統(tǒng)

    java實(shí)現(xiàn)水果超市管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)水果超市管理系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • Java輕松實(shí)現(xiàn)PDF轉(zhuǎn)換為PDF/A的示例代碼

    Java輕松實(shí)現(xiàn)PDF轉(zhuǎn)換為PDF/A的示例代碼

    本文將深入探討Java環(huán)境下,如何利用專業(yè)工具將PDF轉(zhuǎn)換為PDF/A格式,為數(shù)字文檔的永續(xù)保存提供可靠方案,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下
    2025-09-09
  • Lombok注解-@SneakyThrows的使用

    Lombok注解-@SneakyThrows的使用

    這篇文章主要介紹了Lombok注解-@SneakyThrows的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Java?Mybatis框架由淺入深全解析下篇

    Java?Mybatis框架由淺入深全解析下篇

    MyBatis是一個(gè)優(yōu)秀的持久層框架,它對(duì)jdbc的操作數(shù)據(jù)庫(kù)的過(guò)程進(jìn)行封裝,使開發(fā)者只需要關(guān)注SQL本身,而不需要花費(fèi)精力去處理例如注冊(cè)驅(qū)動(dòng)、創(chuàng)建connection、創(chuàng)建statement、手動(dòng)設(shè)置參數(shù)、結(jié)果集檢索等jdbc繁雜的過(guò)程代碼,本文將作為最終篇為大家介紹MyBatis的使用
    2022-07-07
  • java如何判斷Date是上午還是下午

    java如何判斷Date是上午還是下午

    文章介紹了三種在Java中判斷Date對(duì)象是上午還是下午的方法:使用Calendar類、使用Java 8的java.time包以及使用SimpleDateFormat進(jìn)行格式化輸出,每種方法都有代碼示例和解釋,幫助開發(fā)者根據(jù)具體需求選擇合適的方法
    2025-03-03

最新評(píng)論

沙雅县| 甘德县| 县级市| 白沙| 甘洛县| 泽州县| 黑山县| 洪江市| 温泉县| 望奎县| 高淳县| 磐石市| 太湖县| 台州市| 富阳市| 吕梁市| 子长县| 从江县| 扶沟县| 德惠市| 承德县| 西乌珠穆沁旗| 辽宁省| 阿坝| 湛江市| 朔州市| 达孜县| 德化县| 布拖县| 桓台县| 沽源县| 黔江区| 平乡县| 大田县| 夹江县| 大港区| 淮南市| 安康市| 鄯善县| 渭南市| 台东县|