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

Web自動化測試——selenium篇(一)

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

在學習 Web 自動化測試的過程中,selenium 是其中的常用工具。除了其開源免費,包含豐富的 API 以外,它還支持多瀏覽器,多系統(tǒng),多語言等等優(yōu)點

一、環(huán)境準備

這里將使用Java語言,在谷歌瀏覽器(Chrome)下來進行 selenium 工具的使用。

想要開展自動化測試,首先要保證環(huán)境已經(jīng)部署到位,包括 selenium 工具包,Chrome瀏覽器,Webdriver(Chromedriver 谷歌驅(qū)動),java版本至少為8

關(guān)于 selenium 工具包,在我們創(chuàng)建好一個 Maven 項目之后,就需要在 pom.xml 中引入依賴。完成后,一定要點開界面右上角的 Maven 按鈕,點擊刷新按鈕進行刷新

<dependencies>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>4.0.0</version>
    </dependency>
</dependencies>

Chrome 瀏覽器記得在官方網(wǎng)頁下載就行。

由于使用的是 Chrome 瀏覽器,那么我們使用的驅(qū)動得是谷歌驅(qū)動(Chromedriver),這個驅(qū)動的作用就是協(xié)助打開 Chrome 瀏覽器的,因為代碼是沒有辦法自己直接打開瀏覽器,進行一系列操作的。

下載驅(qū)動的具體操作呢,首先要先查看一下 Chrome 瀏覽器的版本,瀏覽器右上角的三個點 ?? 幫助? ?? 關(guān)于 Google Chrome

web自動化測試selenium,測試開發(fā),selenium,chrome,測試工具,java

然后,進入下面的地址,選擇與 Chrome 版本最接近的版本,點進去,下載驅(qū)動

鏈接:Chromedriver

web自動化測試selenium,測試開發(fā),selenium,chrome,測試工具,java

下載完成后,將 chromedriver.exe 放到 C:\Program Files\Java\jdk1.8.0_192\bin 目錄下(默認情況下)

PS:最好停止瀏覽器自動更新的功能,不然版本更新后,又需要下載新的驅(qū)動

具體操作,控制面板 ?? 管理工具 ?? 服務(wù) ?? ?Google更新服務(wù)禁用(右擊屬性設(shè)置)

web自動化測試selenium,測試開發(fā),selenium,chrome,測試工具,java

二、Web 自動化測試 Demo

主要內(nèi)容就是打開瀏覽器,打開百度網(wǎng)頁,在搜索框中輸入搜索關(guān)鍵詞,點擊 “百度一下“ 搜索按鈕,查看到搜索結(jié)果內(nèi)容,關(guān)閉瀏覽器

public class Test1 {
    //創(chuàng)建出一個驅(qū)動對象來
    private ChromeDriver driver = new ChromeDriver();
    //自動化測試前必須的操作:打開網(wǎng)址
    public void startTest() {
        driver.get("https://www.baidu.com/");
    }
    public void demoTest() throws InterruptedException {
        Thread.sleep(1000);//等待1秒,為了更方便的查看測試狀態(tài)
        //找到 id 為 "kw" 的元素(百度輸入框),然后往該元素中填充搜索詞 "巴巴"
        driver.findElement(By.id("kw")).sendKeys("巴巴");
        Thread.sleep(1000);
        //找到 id 為 "su" 的元素('百度一下'按鈕),然后點擊一下
        driver.findElement(By.id("su")).click();
        Thread.sleep(1000);
    }
    //自動化測試后必須的操作:釋放掉驅(qū)動對象,瀏覽器關(guān)閉
    public void endTest() {
        driver.quit();
    }
}

調(diào)用測試方法類

public class RunTest {
    public static void main(String[] args) throws InterruptedException {
        Test1 test1 = new Test1();
        test1.startTest();	//測試準備
        test1.demoTest();	//測試 ing
        test1.endTest();	//測試收尾
    }
}

三、元素定位常用方法

在上面的測試 Demo 中就已經(jīng)舉例出了一種元素定位方法——By.id()【通過id

除此外還有通過 cssSelector,xpath,tagName,className,name,partialLinkText,linkText

//一、id 定位(全局唯一,可定位成功)
driver.findElement(By.id("kw"));
//二、cssSelector 定位(唯一,可定位成功)
driver.findElement(By.cssSelector("#kw"));
//三、xpath 定位(唯一,可定位成功)
driver.findElement(By.xpath("http://*[@id=\"kw\"]"));
//四、tagName 定位(標簽名不唯一性大,定位失敗率高)
driver.findElement(By.tagName("input"));
//五、className 定位(不唯一性大,定位失敗率高)
driver.findElement(By.className("s_ipt"));
//六、name 定位(有定位失敗的可能)
driver.findElement(By.name("wd"));
//七、linkText 定位(鏈接名定位)
driver.findElement(By.linkText("hao123"));
//八、partialLinkText 定位(部分鏈接名定位)
driver.findElement(By.partialLinkText("123"));

定位元素時,一定要保證元素能夠找到且唯一,否則定位失敗

web自動化測試selenium,測試開發(fā),selenium,chrome,測試工具,java

四、元素定位失敗可能原因

原因一:定位的方式不唯一,或者根本就沒與該元素

檢查該元素是否可定位,可通過F12的console標簽通過document.querySelector() 的方法定位,可驗證是否能找到元素

原因二:如果使用 cssSelector 或者 xpath 的話,其定位方式錯誤

按下F12,ctrl+f,把要檢查的 cssSelector 輸入,看能否只定位到一個元素。

原因三:頁面還沒有加載完成,就開始定位元素

一般來說,代碼執(zhí)行的速度比頁面渲染速度要快。代碼執(zhí)行到了,但目標元素在頁面中還沒有渲染出來導致沒法定位到目標元素,因此需要合理使用元素等待

原因四:元素沒有達到可見的條件

比如目標元素需要鼠標懸?;蛘邌螕繇撁嫔系哪硞€元素或者需要需要滾動條下拉才能找到。或者還有可能,需要定位的元素在新的窗口中,但是還沒有打開新的窗口,需要切換到新窗口才可以找到目標元素。還有可能某些元素本來就是不可見的,比如 display 屬性為 none,這就需要通過 JavaScript 修改 display 的值

原因五:存在表單嵌套

順著定位元素往上找,查看是否有 <iframe> 標簽,找到說明要定位此元素,需先切換到此表單,再定位元素。

五、測試對象操作

5.1 click 點擊對象

driver.findElement(By.partialLinkText("123")).click();

5.2 send_keys 按鍵輸入

driver.findElement(By.id("kw")).sendKeys("巴巴");

5.3 clear 清除輸入

driver.findElement(By.id("kw")).clear();

5.4 submit 提交表單

driver.findElement(By.id("su")).submit();

click 和 submit 都可以操作按鈕,不同的是,click 可以點擊頁面中的任何元素,但可以 click 的地方不一定可以 submit ,所以一般使用 click 就行

5.5 getText 文本獲取

String str = driver.findElement(By.partialLinkText("123")).getText();
System.out.println(str);

獲取的文本是不包含在標簽內(nèi)的,標簽中的 value 值指的是 value 的屬性值

5.6 getAttribute 屬性值獲取

String str1 = driver.findElement(By.id("su")).getAttribute("type");
String str2 = driver.findElement(By.id("su")).getAttribute("value");
String str3 = driver.findElement(By.id("su")).getAttribute("id");
String str4 = driver.findElement(By.id("su")).getAttribute("class");
System.out.println("type:"+str1+" value:"+str2+" id:"+str3+" class:"+str4);

web自動化測試selenium,測試開發(fā),selenium,chrome,測試工具,java

六、等待操作

在元素定位失敗的原因中有提到過,代碼的執(zhí)行速度比頁面渲染的速度快,如果目標元素還沒渲染出來,代碼就已經(jīng)執(zhí)行到了,就會導致找不到目標元素,所以等待的操作是非常有必要的

強制等待

Thread.sleep(1000);

參數(shù)是強制等待的時間,單位是毫秒,用法非常簡單。指定多少時間就會讓程序暫停多少時間,等待時間結(jié)束后才會繼續(xù)執(zhí)行下一步,方便調(diào)試查看測試過程。但固定的等待時間導致測試時間過長,降低測試效率

隱式等待

public void waitTest() {
    driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(2));
    //隱式等待,設(shè)置等待的時間為 2,單位為秒
    driver.findElement(By.id("kw")).sendKeys("狗狗");
    driver.findElement(By.id("su")).click();
    driver.findElement(By.xpath("http://*[@id=\"5\"]/div/div/h3/a")).click();
}

隱式等待指的是在自己設(shè)置的這段時間內(nèi),不停的等待目標元素出現(xiàn),如果在時間范圍內(nèi)始終沒有出現(xiàn),就會拋出找不到元素異常(NoSuchElementException)。并且隱式等待作用范圍為整個 Webdriver 生命周期,所以放在哪里影響不大,只要沒退出瀏覽器就一直存在。

和強制等待相比,無疑是節(jié)省了很多的時間

顯示等待

隱式等待有個缺點,那就是需要等待所有的元素都展現(xiàn)出來了才會執(zhí)行下一步。與之相比,顯示等待的優(yōu)點就是針對某個元素進行等待,不需要等到所有元素都渲染好,目標元素出現(xiàn)就可以結(jié)束了,進一步提高測試效率,但是寫法相較于前兩種來說更為復雜。

public void waitTest() {
    driver.findElement(By.id("kw")).sendKeys("狗狗");
    driver.findElement(By.id("su")).click();
    //創(chuàng)建一個顯示等待的對象,初始化時傳入兩個參數(shù),一個是驅(qū)動對象,另一個是等待時間
    WebDriverWait wait = new WebDriverWait(driver,Duration.ofSeconds(3));
    //在規(guī)定時間內(nèi)不停尋找目標元素
    //結(jié)束的契機就是until括號內(nèi)的條件滿足,即目標元素已經(jīng)被找到了,沒找到就拋出異常
    wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("http://*[@id=\"5\"]/div/div/h3/a"))).click();
}

PS:隱式等待和顯示等待不要放在一起使用,不然實際等待的時間將沒有辦法預期文章來源地址http://www.zghlxwxcb.cn/news/detail-816435.html

七、信息打印

public void printTest() {
    String title = driver.getTitle();		//獲取網(wǎng)址標題
    String url = driver.getCurrentUrl();	//獲取網(wǎng)址 url
    System.out.println("title:"+title+"  url:"+url);
}

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

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

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

相關(guān)文章

  • Web自動化測試--selenium

    Web自動化測試--selenium

    ??? 交流討論: 歡迎加入我們一起學習! ?? 資源分享 : 耗時200+小時精選的「軟件測試」資料包 ??? 教程推薦: 火遍全網(wǎng)的《軟件測試》教程?? ?? 歡迎點贊 ?? 收藏 ?留言 ?? 如有錯誤敬請指正! Selenium 是支持web瀏覽器自動化的一系列工具和庫的綜合項目,能夠進

    2024年03月14日
    瀏覽(31)
  • selenium - web 自動化測試

    selenium - web 自動化測試

    有效的減少人力的消耗, 同時提高生活的質(zhì)量. 通過自動化測試有效減少人力的投入, 同時提高了測試的質(zhì)量和效率. 測試人員有個環(huán)節(jié)叫做回歸測試. 回歸測試 : 對歷史版本, 歷史功能進行測試, 保證功能都是符合要求的. 為什么需要回歸測試歷史版本 ? 因為新版本和舊版本一般

    2024年02月04日
    瀏覽(25)
  • selenium-web自動化測試

    selenium-web自動化測試

    步驟一:查看自己的谷歌瀏覽器版本(瀏覽器版本和驅(qū)動版本一定要對應) 步驟二:下載對應的驅(qū)動包, 下載路徑 :?ChromeDriver - WebDriver for Chrome - Downloads (chromium.org) ? 注意步驟二中, 只要保持 115.0.5790?一致即可, 最后一位數(shù)字我選擇102(網(wǎng)頁110下載不了所以選擇102) 步驟三:解

    2024年02月12日
    瀏覽(28)
  • Web自動化測試 Selenium 1/3

    Web自動化測試 Selenium 1/3

    ??? 交流討論: 歡迎加入我們一起學習! ?? 資源分享 : 耗時200+小時精選的「軟件測試」資料包 ??? 教程推薦: 火遍全網(wǎng)的《軟件測試》教程?? ?? 歡迎點贊 ?? 收藏 ?留言 ?? 如有錯誤敬請指正! 在這里,我還想說一下關(guān)于?Selenium?名字的來源,很有意思的?:??:

    2024年03月11日
    瀏覽(20)
  • Web自動化測試——selenium篇(一)

    Web自動化測試——selenium篇(一)

    在學習 Web 自動化測試的過程中,selenium 是其中的常用工具。除了其開源免費,包含豐富的 API 以外,它還支持多瀏覽器,多系統(tǒng),多語言等等優(yōu)點 這里將使用 Java 語言,在 谷歌瀏覽器(Chrome) 下來進行 selenium 工具的使用。 想要開展自動化測試,首先要保證環(huán)境已經(jīng)部署到

    2024年01月23日
    瀏覽(24)
  • Selenium Web自動化測試框架實踐

    Selenium Web自動化測試框架實踐

    目錄 ? ? ? ?前言: 項目背景 功能實現(xiàn) 項目架構(gòu) 瀏覽器driver定義 用例運行前后的環(huán)境準備工作 工具方法模塊 Pageobject頁面對象封裝 執(zhí)行測試用例 ? ? ? ?前言: ? ? ? ? ?Selenium是一個基于Web的自動化測試框架,可以通過模擬用戶在瀏覽器上的操作,來自動化地測試Web應

    2024年02月10日
    瀏覽(27)
  • Web自動化測試——selenium的使用

    Web自動化測試——selenium的使用

    ?? 前言 ?? 本篇文章就進入了 自動化測試 的章節(jié)了,如果作為一名測試開發(fā)人員,非常需要掌握自動化測試的能力,因為它不僅能減少人力的消耗,還能提升測試的效率。 ?? 歡迎點贊 ?? 收藏 ? 留言評論 ?? 私信必回喲 ?? ?? 博主將持續(xù)更新學習記錄收獲,友友們

    2024年02月01日
    瀏覽(47)
  • 【自動化測試】基于Selenium + Python的web自動化框架

    【自動化測試】基于Selenium + Python的web自動化框架

    Selenium是一個基于瀏覽器的自動化工具,她提供了一種跨平臺、跨瀏覽器的端到端的web自動化解決方案。Selenium主要包括三部分:Selenium IDE、Selenium WebDriver 和Selenium Grid: ? 1、Selenium IDE:Firefox的一個擴展,它可以進行錄制回放,并可以把錄制的操作以多種語言(例如java,p

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

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

    2024年01月16日
    瀏覽(95)
  • Web自動化測試:Selenium入門到精通

    Web自動化測試:Selenium入門到精通

    說到自動化測試,就不得不提大名鼎鼎的Selenium。Selenium 是如今最常用的自動化測試工具之一,支持快速開發(fā)自動化測試框架,且支持在多種瀏覽器上執(zhí)行測試。 Selenium學習難度小,開發(fā)周期短。對測試人員來說,如果你編程經(jīng)驗不足,python + Selenium 是個很好的選擇。語法簡

    2024年02月03日
    瀏覽(51)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包