国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Selenium java自動化

這篇具有很好參考價(jià)值的文章主要介紹了Selenium java自動化。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1. Selenium的安裝

2. 了解自動化和selenium

2.1 什么是自動化以及為什么要做

自動化測試能夠代替一部分的手工測試。自動化測試能夠提高測試效率。
隨著功能的增加,版本越來越多,版本回歸的壓力也越來越大,所以僅僅通過人工測試來回歸所有的版本肯定是不現(xiàn)實(shí)的,所以我們需要借助自動化來進(jìn)行回歸

2.2為什么選擇selenium作為我們的文本自動化工具

選擇它肯定是有原因的.

  • 1開源免費(fèi)
    1. 支持多瀏覽器。如Chrome、Firefox、IE、edge、Safari…
  • 3)支持多系統(tǒng)。如Linux、Windows、MacOS
  • 4)支持多語言。如java、python…
    1. selenium包底層有很多可使用的API

2.3 環(huán)境部署

  • selenium工具包
  • Chrome瀏覽器
  • Chromedriver谷歌驅(qū)動
  • java版本最低要求8

2.4什么驅(qū)動,驅(qū)動的工作原理。

汽車有驅(qū)動,兩輪驅(qū)動、四輪驅(qū)動 可以讓汽車跑起來計(jì)算機(jī)里也有驅(qū)動程序,可以驅(qū)動計(jì)算機(jī)和設(shè)備工作起來打開瀏覽器也需要驅(qū)動。
人工測試情況下(人工手動的驅(qū)動打開瀏覽器)自動化來說 ,代碼不能夠直接打開瀏覽器,需要借助驅(qū)動程序來協(xié)助打開瀏覽器。
代碼可以驅(qū)使驅(qū)動來打開瀏覽器。
selenium 驅(qū)動 瀏覽器三者之間的關(guān)系,如下圖:

Selenium java自動化
如下圖,瀏覽器驅(qū)動本質(zhì)上是一個(gè)服務(wù)器

Selenium java自動化

2.5一個(gè)簡單的自動化演示

需求:打開百度搜索"scdn"提交

    // 
    public void dilireba() throws InterruptedException {
        Thread.sleep(3000);
        driver.get("https://www.baidu.com");
        driver.findElement(By.cssSelector("#kw")).sendKeys("csdn");
        Thread.sleep(3000);
        driver.findElement(By.cssSelector("#su")).submit();
        //driver.findElement(By.cssSelector("#su")).click();
    }

3. 掌握selenium的基礎(chǔ)語法

3.1)元素的定位

    // 需求: 測試定位元素的 方式
    public void findElement()
    {
        // 方式一:
        // 定位元素并打印文本信息
        String xpath = driver.findElement(By.xpath("http://*[@id=\"hotsearch-content-wrapper\"]/li[1]/a/span[2]")).getText();
        System.out.println(xpath);

        // 方式二:
        String css = driver.findElement(By.cssSelector("#hotsearch-content-wrapper > li:nth-child(1) > a > span.title-content-title")).getText();
        System.out.println(css);

    }

3.2) 元素的操作

    // 元素的操作
    // 點(diǎn)擊:click
    // 提交:submit
    // 模擬按鍵輸入:send_keys
    // 清楚對象輸入的文本內(nèi)容 : clear()
    // 獲取文本: gettext
    // 獲取元素屬性: getAttribute() 
    public void sendkeys_test() throws InterruptedException {

        driver.findElement(By.cssSelector("#kw")).sendKeys("" +
                "今天天氣好啊");
        driver.findElement(By.cssSelector("#kw")).click();
        Thread.sleep(3000);
        driver.findElement(By.cssSelector("#kw")).clear();
        Thread.sleep(3000);
        driver.findElement(By.cssSelector("#kw")).sendKeys("" +
                "明天天氣也會好的");
        Thread.sleep(2000);
    }

3.3)等待

    // 需求: 代碼的執(zhí)行速度比較快,而前端頁面渲染的速度相比慢一點(diǎn),可能導(dǎo)致的結(jié)果是: 代碼已經(jīng)提交執(zhí)行到下一步了,頁面還沒渲染出來,元素找不到.
    // 等待元素被渲染的三種方式:
    // 1. 強(qiáng)制等待
    //           讓程序多等一會, 優(yōu)點(diǎn):語法簡單 缺點(diǎn):固定時(shí)間,測試時(shí)間較長.
    // 2. 隱式等待
    //           在規(guī)定的時(shí)間內(nèi),輪詢等待元素出現(xiàn)之后就立即執(zhí)行下一步,如果在規(guī)定時(shí)間內(nèi)未能完成等待,則會拋出一個(gè) NoSuchElemenExcetion 異常.
    //           優(yōu)點(diǎn): 節(jié)省了大量測試時(shí)間,執(zhí)行效率高.  缺點(diǎn): 需要等待所有的元素都展開才會執(zhí)行下一步,仍然會有時(shí)間消耗.
    // 3. 顯示等待
    //            強(qiáng)制等待可以針對某一個(gè)元素來進(jìn)行測試.
    //            優(yōu)點(diǎn): 針對一個(gè)元素來進(jìn)行等待,極大降低自動化測試時(shí)間.
    //            缺點(diǎn): 寫法較為復(fù)雜.
    public void wait_test() throws InterruptedException {
        // 1. 強(qiáng)制等待
        Thread.sleep(3000);
        // 2. 隱式等待
        driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(3));
        // 3. 顯示等待
        WebDriverWait foo = new WebDriverWait(driver,Duration.ofSeconds(3));
        foo.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector("#su")));
    }

3.4) 信息的打印

    public void getContent_test()
    {
        String title = driver.getTitle();
        System.out.println(title);
        String url = driver.getCurrentUrl();
        System.out.println(url);
    }

3.5) 窗口切換

     public void windows_test() throws InterruptedException {
         System.out.println("----第一個(gè)窗口------");
         String curWinHandle = driver.getWindowHandle();
         System.out.println(curWinHandle);
         String title = driver.getTitle();
         System.out.println(title);
         String url = driver.getCurrentUrl();
         System.out.println(url);
         System.out.println("----第二個(gè)窗口------");
         // 1.跳轉(zhuǎn)到一個(gè)頁面
         driver.findElement(By.cssSelector("#hotsearch-content-wrapper > li:nth-child(1) > a > span.title-content-title")).click();
         Thread.sleep(3000);
         // 2.driver不會自動切換,需要我們切換窗口
         //  句柄是一個(gè)String類型, 獲取句柄
         Set<String> windows = driver.getWindowHandles();
         String window = "";
         for(String win : windows)
         {
             System.out.println(win);
             if(win != curWinHandle)
             {
                 window=win;
             }
         }
         driver.switchTo().window(window);
          curWinHandle = driver.getWindowHandle();
         System.out.println(curWinHandle);
          title = driver.getTitle();
         System.out.println(title);
          url = driver.getCurrentUrl();
         System.out.println(url);
     }

3.6) 窗口大小的設(shè)置

    public void windowSize_test()
    {
        driver.manage().window().maximize();
        driver.manage().window().minimize();
        driver.manage().window().setSize(new Dimension(800,100));
    }


3.7) 執(zhí)行JavaScript代碼

    public void executeScript_test()
    {
        driver.executeScript("alert(\"hellow world\")");
    }

3.8 導(dǎo)航欄

selenium里提供了navigate接口來實(shí)現(xiàn)頁面的導(dǎo)航

    public void navigate_test() throws InterruptedException {
        WebElement webEle = driver.findElement(By.cssSelector("#nav > div > div > ul > li:nth-child(1) > a"));
        webEle.click();
        Thread.sleep(3000);
        // 后退
        driver.navigate().back();
        Thread.sleep(3000);
        // 前進(jìn)
        driver.navigate().forward();
        Thread.sleep(3000);
        
    }

注意: driver 的窗口并沒有切換.

Selenium java自動化

3.9 彈窗

    // 用于不能定位到元素時(shí)使用
    public void alert_test()
    {
        Alert alert = driver.switchTo().alert(); // 切換到提示彈窗
        alert.sendKeys("are you ok");// 輸入
        alert.accept(); // 接收
        alert.dismiss();// 取消
    }

3.10 鼠標(biāo) 鍵盤 操作

唯一區(qū)別就是,能夠看到鼠標(biāo)在移動,有時(shí)候沒反應(yīng)的,需要perform()執(zhí)行一下才有效果.

    public void mouseKeysboard_test() throws InterruptedException {
        WebElement ele = driver.findElement(By.cssSelector("#xxx"));
        Actions actions = new Actions(driver);
        actions.clickAndHold(ele).perform();
        Thread.sleep(3000);
        
        ele.sendKeys("hhhhhh");
    }

3.11 選擇框

Selenium java自動化文章來源地址http://www.zghlxwxcb.cn/news/detail-503475.html

    public void select_test() throws InterruptedException {
        WebElement ele = driver.findElement(By.cssSelector("#ShippingMethod"));
        Select select = new Select(ele);
        select.selectByIndex(1); // 通過下標(biāo)選擇
        Thread.sleep(3000);
        select.selectByValue("10.69"); // 通過元素屬性 value來選擇
        Thread.sleep(3000);
        select.selectByVisibleText("UPS 2nd Day Air ==> $9.03");
        Thread.sleep(3000);
    }

3.12 上傳文件

    public void fileUpload_test() throws InterruptedException {
        WebElement ele = driver.findElement(By.cssSelector("#選擇上傳文件"));
        ele.sendKeys("本地文件地址");
        Thread.sleep(3000);
    }

到了這里,關(guān)于Selenium java自動化的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Selenium java自動化

    Selenium java自動化

    2.1 什么是自動化以及為什么要做 自動化測試能夠代替一部分的手工測試。自動化測試能夠提高測試效率。 隨著功能的增加,版本越來越多,版本回歸的壓力也越來越大,所以僅僅通過人工測試來回歸所有的版本肯定是不現(xiàn)實(shí)的,所以我們需要借助自動化來進(jìn)行回歸 2.2為什么

    2024年02月11日
    瀏覽(14)
  • 【自動化測試】——Selenium (基于java)

    【自動化測試】——Selenium (基于java)

    小亭子正在努力的學(xué)習(xí)編程,接下來將開啟軟件測試的學(xué)習(xí)~~ 分享的文章都是學(xué)習(xí)的筆記和感悟,如有不妥之處希望大佬們批評指正~~ 同時(shí)如果本文對你有幫助的話,煩請點(diǎn)贊關(guān)注支持一波, 感激不盡~~ 目錄 一、認(rèn)識Selenium 1.什么是自動化測試? 2.Selenium ?3.webdriver的工作原理

    2024年02月15日
    瀏覽(21)
  • Selenium自動化測試(基于Java)

    Selenium自動化測試(基于Java)

    目錄 一. 了解Selenium ?1.1 概念 ?1.2 作用 ?1.3 特點(diǎn) ?1.4 工作原理 ?二.?Selenium + Java 環(huán)境搭建 ?2.1 下載 Chrome 瀏覽器 ?2.2 查看瀏覽器的版本 ?2.3?下載瀏覽器驅(qū)動 ?2.4 驗(yàn)證環(huán)境是否搭建成功 三.?Selenium 常用 API ?3.1 定位元素 ?3.2 操作對象 ?3.3?添加等待 ?3.4?打印信息

    2024年02月06日
    瀏覽(22)
  • 【教程】JAVA + selenium 進(jìn)行自動化測試

    自動登錄淘寶 獲取請求響應(yīng)數(shù)據(jù)等 使用到的工具類

    2024年02月11日
    瀏覽(24)
  • 【測試開發(fā)之路】Java & Selenium自動化

    1、Selenium介紹 ? 使用前需要下載瀏覽器對應(yīng)的Driver,Selenium提供了EdgeDriver和ChromiumDriver兩種驅(qū)動類。需要安裝與本機(jī)瀏覽器版本相同的驅(qū)動。 ? EdgeDriver下載地址:Microsoft Edge WebDriver - Microsoft Edge Developer ? ChromiumDriver下載地址:CNPM Binaries Mirror (npmmirror.com) 2、導(dǎo)入Maven庫 (

    2024年02月12日
    瀏覽(19)
  • Java + Selenium + Appium自動化測試

    Java + Selenium + Appium自動化測試

    一、啟動測試機(jī)或者Android模擬器(Genymotion俗稱世界上最快的模擬器,可自行百度安裝) 二、啟動Appium(Appium環(huán)境安裝可自行百度) 三、安裝應(yīng)用到Genymotion上,如下圖我安裝一個(gè)計(jì)算機(jī)的小應(yīng)用,包名為CalcTest.apk 安裝步驟:(基于Android SDK已經(jīng)配置好了環(huán)境變量,可自行百

    2024年02月07日
    瀏覽(25)
  • 自動化測試:Selenium原理及安裝教程

    自動化測試:Selenium原理及安裝教程

    目錄 一、客戶端和驅(qū)動(環(huán)境)安裝 1、安裝客戶端庫 2、安裝瀏覽器和驅(qū)動 二、簡單示例(Python自動化開發(fā)) 省略瀏覽器驅(qū)動路徑 三、常見問題 關(guān)閉 chromedriver 日志 瀏覽器首頁顯示防病毒重置設(shè)置 擴(kuò)展知識 Selenium 是一套 Web網(wǎng)站 的程序自動化操作 解決方案。 通過它,我

    2024年02月09日
    瀏覽(32)
  • 保姆級自動化測試教程(Selenium+java)

    保姆級自動化測試教程(Selenium+java)

    自動化測試指軟件測試的自動化,在預(yù)設(shè)狀態(tài)下運(yùn)行應(yīng)用程序或者系統(tǒng),預(yù)設(shè)條件包括正常和異常,最后評估運(yùn)行結(jié)果。將人為驅(qū)動的測試行為轉(zhuǎn)化為機(jī)器執(zhí)行的過程。 自動化測試包括 UI自動化 , 接口自動化 , 單元測試自動化 。 單元測試 :最大的投入應(yīng)該在單元測試上

    2024年02月12日
    瀏覽(21)
  • Java + Selenium + Appium手機(jī)自動化測試

    Java + Selenium + Appium手機(jī)自動化測試

    一、啟動測試機(jī)或者Android模擬器(Genymotion俗稱世界上最快的模擬器,可自行百度安裝) 二、啟動Appium(Appium環(huán)境安裝可自行百度) ? 三、安裝應(yīng)用到Genymotion上,如下圖我安裝一個(gè)計(jì)算機(jī)的小應(yīng)用,包名為CalcTest.apk 安裝步驟:(基于Android SDK已經(jīng)配置好了環(huán)境變量,可自行

    2024年02月06日
    瀏覽(26)
  • Selenium 自動化 —— Selenium IDE錄制、回放、導(dǎo)出Java源碼

    Selenium 自動化 —— Selenium IDE錄制、回放、導(dǎo)出Java源碼

    之前我們在專欄的第一篇文章中演示了使用使用Selenium進(jìn)行百度搜索的Hello world示例。 代碼不復(fù)雜非常簡單: 但是對不懂HTML、CSS和Selenium API的同學(xué),可能要編寫一個(gè)完整的可運(yùn)行的Selenium程序還是有一點(diǎn)點(diǎn)難度。 熟悉CSS和花了一點(diǎn)的時(shí)間看了我后續(xù)Selenium 系列教程的除外哈。

    2024年03月22日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包