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

自動化測試工具Selenium的語法續(xù).

這篇具有很好參考價值的文章主要介紹了自動化測試工具Selenium的語法續(xù).。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

OK,那么上篇博客我們介紹了如何搭建基于Java+selenium的環(huán)境,并且使用selenium的一些語法給大家演示了如何進行自動化測試的案例,那么本篇博客我們來繼續(xù)學(xué)習(xí)selenium的一些其他的比較重要的語法,感謝關(guān)注,期待三連~

目錄

一、定位一組元素

二、下拉框處理

三、上傳文件

四、quit和close的區(qū)別

五、瀏覽器頁面跳轉(zhuǎn)

六、截圖操作


一、定位一組元素

webdriver 可以很方便的使用 fifindElement 方法來定位某個特定的對象,不過有時候我們卻需要定位一組對象,這時候就需要使用fifindElements 方法。
定位一組對象一般用于以下場景:
1、批量操作對象,比如將頁面上所有的 checkbox 都勾選上;
2、先獲取一組對象,再在這組對象中過濾出需要具體定位的一些對象。比如定位出頁面上所有的
checkbox ,然后選擇最后一個;
OK,我們來做個具體的演示:
1、在我們的桌面上新建一個文本文件,然后把下面的前端代碼填入保存;

<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<title>Checkbox</title>
</head>
<body>
<h3>checkbox</h3>
<div class="well">
<form class="form-horizontal">
<div class="control-group">
<label class="control-label" for="c1">checkbox1</label>
<div class="controls">
<input type="checkbox" id="c1" />
</div>
</div>
<div class="control-group">
<label class="control-label" for="c2">checkbox2</label>
<div class="controls">
<input type="checkbox" id="c2" />
</div>
</div>
<div class="control-group">
<label class="control-label" for="c3">checkbox3</label>
<div class="controls">
<input type="checkbox" id="c3" />
</div>
</div>
<div class="control-group">
<label class="control-label" for="r">radio</label>
<div class="controls">
<input type="radio" id="r1" />
</div>
</div>
<div class="control-group">
<label class="control-label" for="r">radio</label>
<div class="controls">
<input type="radio" id="r2" />
</div>
</div>
</form>
</div>
</body>
</html>

2、保存之后,修改文件的名稱為“xx.html”,我這里取的是demo6.html;

自動化測試工具Selenium的語法續(xù).,【測試開發(fā)工程師】,selenium,測試工具,單元測試

3、雙擊打開,觀察界面展示;

自動化測試工具Selenium的語法續(xù).,【測試開發(fā)工程師】,selenium,測試工具,單元測試?

那么這里我們想實現(xiàn)一次性勾選checkbox1,2,3這三個選項,即實現(xiàn)多選,那么怎么做呢?

也就是我們開頭提到的定位一組元素,看代碼實現(xiàn):

package AutoTest.Selenium1;

import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;

import java.util.List;

//定位一組元素
public class demo6 {
    public static void main(String[] args) {
        ChromeOptions options = new ChromeOptions();
        options.addArguments("--remote-allow-origins=*");
        ChromeDriver driver = new ChromeDriver(options);
        driver.get("file:///C:/Users/ASUS/Desktop/demo6.html");

        List<WebElement> webElements = driver.findElements(By.cssSelector("input"));
        for (int i = 0; i < webElements.size(); i++) {
            if(webElements.get(i).getAttribute("type").equals("checkbox")){
                webElements.get(i).click();
            }else{
                //什么也不做
            }
        }
    }
}

我們發(fā)現(xiàn)是使用了List<WebElement>來存儲所有帶input標(biāo)簽的元素;

這個時候我們查看網(wǎng)頁源代碼,我們發(fā)現(xiàn)每個可以勾選的按鈕都帶有type屬性;

自動化測試工具Selenium的語法續(xù).,【測試開發(fā)工程師】,selenium,測試工具,單元測試

?那么就可以使用方法getAttribute("type"),括號中放的是數(shù)據(jù)類型,來定位到所有類型帶type的元素;定位到之后進行click()點擊操作;

運行結(jié)果:

自動化測試工具Selenium的語法續(xù).,【測試開發(fā)工程師】,selenium,測試工具,單元測試

二、下拉框處理

那么我們在設(shè)計自動化用例的時候也經(jīng)常會遇到input帶下拉框的這種情況,比如下面:

源代碼:

<html>
<body>
<select id="ShippingMethod"
onchange="updateShipping(options[selectedIndex]);" name="ShippingMethod">
<option value="12.51">UPS Next Day Air ==> $12.51</option>
<option value="11.61">UPS Next Day Air Saver ==> $11.61</option>
<option value="10.69">UPS 3 Day Select ==> $10.69</option>
<option value="9.03">UPS 2nd Day Air ==> $9.03</option>
<option value="8.34">UPS Ground ==> $8.34</option>
<option value="9.25">USPS Priority Mail Insured ==> $9.25</option>
<option value="7.45">USPS Priority Mail ==> $7.45</option>
<option value="3.20" selected="">USPS First Class ==> $3.20</option>
</select>
</body>
</html>

自動化測試工具Selenium的語法續(xù).,【測試開發(fā)工程師】,selenium,測試工具,單元測試

那么這種情況的話直接使用普通的cssSelector或者xpath方法是無法完成頁面元素定位的,那么如何操作呢?這里主要會用到一個Select函數(shù),創(chuàng)建一個Select對象,然后調(diào)用里面對應(yīng)的方法;常見的使用下標(biāo)定位或者通過value來進行定位;

package AutoTest.Selenium1;

import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.support.ui.Select;

//下拉框處理
public class demo7 {
    public static void main(String[] args) {
        ChromeOptions options = new ChromeOptions();
        options.addArguments("--remote-allow-origins=*");
        ChromeDriver driver = new ChromeDriver(options);
        driver.manage().window().maximize();
        driver.get("file:///C:/Users/ASUS/Desktop/demo7.html");

        WebElement webElement = driver.findElement(By.cssSelector("#ShippingMethod"));
        Select select = new Select(webElement);
        select.selectByIndex(3);
        select.selectByValue("9.03");
    }
}

value值查看:

自動化測試工具Selenium的語法續(xù).,【測試開發(fā)工程師】,selenium,測試工具,單元測試

三、上傳文件

?先構(gòu)建一個頁面,代碼如下:

<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<title>upload_file</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js">
</script>
<link
href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstra
p-combined.min.css" rel="stylesheet" />
<script type="text/javascript">
</script>
</head>
<body>
<div class="row-fluid">
<div class="span6 well">
<h3>upload_file</h3>
<input type="file" name="file" />
</div>
</div>
</body>
<script src="http://netdna.bootstrapcdn.com/twitterbootstrap/2.3.2/js/bootstrap.
min.js"></script>
</html>

效果:

自動化測試工具Selenium的語法續(xù).,【測試開發(fā)工程師】,selenium,測試工具,單元測試

自動化代碼:

package AutoTest.Selenium1;

import org.openqa.selenium.By;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;

//上傳文件
public class demo8 {
    public static void main(String[] args) {
        ChromeOptions options = new ChromeOptions();
        options.addArguments("--remote-allow-origins=*");
        ChromeDriver driver = new ChromeDriver(options);
        driver.manage().window().maximize();
        driver.get("file:///C:/Users/ASUS/Desktop/demo8.html");

        driver.findElement(By.cssSelector("input")).sendKeys("C:\\Users\\ASUS\\Desktop\\UPUP.txt");

    }
}

?定位到上傳文件的按鈕,然后輸入自己要上傳文件的路徑即可,這里使用絕對路徑和相對路徑均可;運行結(jié)果:

自動化測試工具Selenium的語法續(xù).,【測試開發(fā)工程師】,selenium,測試工具,單元測試

四、quit和close的區(qū)別

quit是關(guān)閉整個瀏覽器,close只是關(guān)閉當(dāng)前窗口,即quit會清空緩存,而close不會清空緩存。

代碼驗證:

package AutoTest.Selenium1;

import org.openqa.selenium.By;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;

import static java.lang.Thread.sleep;

//quit和close的區(qū)別
public class demo9 {
    public static void main(String[] args) throws InterruptedException {
            ChromeOptions options = new ChromeOptions();
            options.addArguments("--remote-allow-origins=*");
            ChromeDriver driver = new ChromeDriver(options);
            driver.manage().window().maximize();
            driver.get("https://www.baidu.com");

//            driver.findElement(By.cssSelector("#kw")).sendKeys("楊冪");
            driver.findElement(By.cssSelector("#s-top-left > a:nth-child(1)")).click();
            sleep(3000);
            //quit是關(guān)閉整個瀏覽器
//            driver.quit();
            //close只是關(guān)閉當(dāng)前窗口
            driver.close();
            //即quit會清空緩存,而close不會清空緩存。
    }
}

?使用close()函數(shù)時,現(xiàn)在是打開了兩個窗口句柄;

隨著代碼的運行,關(guān)閉了一個窗口句柄;

如果使用quit的話是運行結(jié)束之后直接退出瀏覽器;

五、瀏覽器頁面跳轉(zhuǎn)

那么我們在設(shè)計自動化代碼的時候,可能會遇到頁面從當(dāng)前頁面跳轉(zhuǎn)到另一個新的頁面,那么這個時候再去使用cssSelector或者Xpath方法去定位元素的話,肯定是定位不到的,因為跳轉(zhuǎn)到了新的頁面,get方法打開的是舊的頁面,那么如何解決呢?

比如在百度首頁,我們點擊新聞這個超鏈接,那么瀏覽器會打開兩個頁面;

自動化測試工具Selenium的語法續(xù).,【測試開發(fā)工程師】,selenium,測試工具,單元測試

點擊“新聞”按鈕,來到了一個新的頁面;

?

那么我們發(fā)現(xiàn)這個頁面也是可以進行搜索框輸入數(shù)據(jù)進行百度一下的;

看代碼注釋:

package AutoTest.Selenium1;

import org.openqa.selenium.By;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;

import java.util.Set;

import static java.lang.Thread.sleep;

public class demo10 {
    public static void main(String[] args) throws InterruptedException {
        ChromeOptions options = new ChromeOptions();
        options.addArguments("--remote-allow-origins=*");
        ChromeDriver driver = new ChromeDriver(options);
        driver.manage().window().maximize();
        driver.get("https://www.baidu.com");

        driver.findElement(By.cssSelector("#s-top-left > a:nth-child(1)")).click();
        sleep(3000);

        //通過getWindowHandles獲取所有的窗口句柄
        //通過getWindowHandle獲取get打開的頁面窗口句柄
        Set<String> handles =  driver.getWindowHandles();
        //target用來獲取當(dāng)前最新的頁面地址
        String target = "";
        for (String handle:handles) {
            target = handle;
        }
        driver.switchTo().window(target);
        driver.findElement(By.cssSelector("#ww")).sendKeys("新聞聯(lián)播");
        driver.findElement(By.cssSelector("#s_btn_wr")).click();
    }
}

運行結(jié)果:

六、截圖操作

這個操作的話就是會在指定的頁面進行截圖,然后保存到對應(yīng)的路徑,在實際工作中對比與我們的預(yù)期結(jié)果是否一致;

1、首先需要在我們的配置文件pom.xml中導(dǎo)入依賴;

自動化測試工具Selenium的語法續(xù).,【測試開發(fā)工程師】,selenium,測試工具,單元測試

?依賴代碼:

        <!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.11.0</version>
        </dependency>

自動化代碼:

package AutoTest.Selenium1;

import org.apache.commons.io.FileUtils;
import org.openqa.selenium.By;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;

import java.io.File;
import java.io.IOException;

import static java.lang.Thread.sleep;

/**
 * 截圖操作:需要導(dǎo)入依賴,可以去pom.xml文件中查看依賴,依賴從maven中央倉庫中搜索common-io,下載。
 */
public class dmeo11 {
    public static void main(String[] args) throws IOException, InterruptedException {
        ChromeOptions options = new ChromeOptions();
        options.addArguments("--remote-allow-origins=*");
        ChromeDriver driver = new ChromeDriver(options);
        driver.manage().window().maximize();
        driver.get("https://www.baidu.com");

        driver.findElement(By.cssSelector("#kw")).sendKeys("自動化測試");
        driver.findElement(By.cssSelector("#su")).click();
        sleep(3000);
        File file = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
        FileUtils.copyFile(file,new File("D://demo10.png"));
    }
}

運行可以去我們自己設(shè)定的目錄路徑下面查看是否生成了對應(yīng)的截圖:

自動化測試工具Selenium的語法續(xù).,【測試開發(fā)工程師】,selenium,測試工具,單元測試

OK,以上就是selenium的所有常見操作的方法了,創(chuàng)作不易,可以動動小手一鍵三連啦,我們下篇博客更新自動化測試框架Junit的用法~文章來源地址http://www.zghlxwxcb.cn/news/detail-688032.html

到了這里,關(guān)于自動化測試工具Selenium的語法續(xù).的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 如何使用自動化測試工具Selenium?

    如何使用自動化測試工具Selenium?

    哈嘍,大家好,我是小浪。那么有一段時間沒有更新了,還是在忙實習(xí)和秋招的事情,那么今天也是實習(xí)正式結(jié)束啦,開始繼續(xù)更新我們的學(xué)習(xí)博客,后期主要是開發(fā)和測試的學(xué)習(xí)博客內(nèi)容巨多,感興趣的小伙伴們可以一鍵三連支持一下歐~ 目錄 一、什么是自動化測試? 二、

    2024年02月11日
    瀏覽(100)
  • python自動化測試工具selenium

    selenium 是網(wǎng)頁應(yīng)用中最流行的自動化測試工具,可以用來做自動化測試或者瀏覽器爬蟲等。官網(wǎng)地址為:Selenium。相對于另外一款web自動化測試工具QTP來說有如下優(yōu)點: 免費開源輕量級,不同語言只需要一個體積很小的依賴包 支持多種系統(tǒng),包括Windows,Mac,Linux 支持多種瀏

    2024年02月08日
    瀏覽(26)
  • 如何使用Python自動化測試工具Selenium進行網(wǎng)頁自動化?

    如何使用Python自動化測試工具Selenium進行網(wǎng)頁自動化?

    Selenium 是一個流行的Web自動化測試框架, 它支持多種編程語言和瀏覽器,并提供了豐富的API和工具來模擬用戶在瀏覽器中的行為 。 Selenium可以通過代碼驅(qū)動瀏覽器自動化測試流程,包括頁面導(dǎo)航、元素查找、數(shù)據(jù)填充、點擊操作等。 與PyAutoGUI和AutoIt相比, Selenium更適合于處

    2023年04月09日
    瀏覽(111)
  • 自動化測試工具selenium的安裝方法

    一、什么是selenium Selenium 是一套 Web網(wǎng)站 的程序自動化操作 解決方案。 通過它,我們可以寫出自動化程序,像人一樣在瀏覽器里操作web界面。 比如點擊界面按鈕,在文本框中輸入文字 等操作。 Selenium 通過使用? WebDriver ?支持市場上所有主流瀏覽器的自動化。 Webdriver 是一個

    2024年02月09日
    瀏覽(30)
  • Selenium教程:自動化瀏覽器測試工具

    Selenium教程:自動化瀏覽器測試工具

    Selenium是一款用于自動化瀏覽器測試的工具,它提供了一系列的API和功能,使得開發(fā)人員可以編寫腳本來模擬用戶在瀏覽器中的行為。無論是在Web應(yīng)用程序的功能測試、性能測試還是數(shù)據(jù)抓取方面,Selenium都是一個強大且廣泛使用的工具。 在開始使用Selenium之前,您需要進行安

    2024年02月07日
    瀏覽(201)
  • Web測試自動化工具Selenium的使用

    Selenium是一個Web應(yīng)用測試的自動化工具,它通過模擬點擊實現(xiàn)對Web應(yīng)用的功能測試。測試時,除了Selenium,還需要對應(yīng)的瀏覽器驅(qū)動,如在Chrome實現(xiàn)自動點擊,則需要chromedriver。 Selenium支持多種語言和多種瀏覽器,本文僅記錄python+chrome的使用。 1. 安裝python 略 2. 安裝Selenium 注

    2024年01月16日
    瀏覽(95)
  • 自動化測試工具-Selenium:Selenium的核心三大組件詳解

    自動化測試工具-Selenium:Selenium的核心三大組件詳解

    目錄 1. WebDriver 1.1 WebDriver的通信方式 1.2 WebDriver的功能 1.3 W3C推薦標(biāo)準(zhǔn) 2. Grid 3. IDE Selenium 是支持 web 瀏覽器自動化的一系列工具和庫的綜合項目。官方對Selenium認可的三大組件或API分別是: WebDriver、Selenium IDE、Grid。 其中,WebDriver又被稱為Selenium的核心。 下面本篇文章將深度介

    2024年02月03日
    瀏覽(52)
  • 學(xué)會自動化必備工具-Selenium-再想著入坑自動化測試吧

    學(xué)會自動化必備工具-Selenium-再想著入坑自動化測試吧

    隨著近些年IT行業(yè)的發(fā)展,軟件測試人才的需求越來越大,也有很多小伙伴在考慮入坑,而軟件測試中,收入相對較高的就是自動化了,所以這次就專門為大家簡單介紹下自動化測試的必備工具Selenium。 Selenium是一款基于Web應(yīng)用程序的開源測試工具 ,直接運行在瀏覽器中,支

    2024年01月23日
    瀏覽(34)
  • 自動化測試工具之Selenium IDE錄制教程

    自動化測試工具之Selenium IDE錄制教程

    ? ? ? ? 下載傳送帶:Selenium IDE · Open source record and playback test automation for the web ? ? ? ? 這里Darren洋以firefox火狐瀏覽器為例,將以上下載url直接在firefox瀏覽器中打開,點擊對應(yīng)下載按鈕后,就會進入添加頁面。 ? ? ? ? 這里直接點擊添加到Firefox瀏覽器的按鈕即可,谷歌瀏

    2024年02月08日
    瀏覽(21)
  • Python自動化測試工具selenium使用指南

    Python自動化測試工具selenium使用指南

    概述 selenium 是網(wǎng)頁應(yīng)用中最流行的自動化測試工具,可以用來做自動化測試或者瀏覽器爬蟲等。官網(wǎng)地址為:相對于另外一款web自動化測試工具QTP來說有如下優(yōu)點: 免費開源輕量級,不同語言只需要一個體積很小的依賴包 支持多種系統(tǒng),包括Windows,Mac,Linux 支持多種瀏覽器

    2024年02月04日
    瀏覽(80)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包