1. 程式人生 > >Selenium瀏覽器自動化測試使用(2)

Selenium瀏覽器自動化測試使用(2)

Selenium - 環境安裝設定

為了開發Selenium RC或webdriver指令碼,使用者必須確保他們有初始配置完成。有很多關聯建立環境的步驟。這裡將通過詳細的講解。

  • 下載並安裝Java

  • 下載並配置Eclipse

  • 配置Firebug和FirePath

  • 配置Selenium RC

  • 配置Selenium的webdriver

下載並安裝Java

我們需要有JDK(Java開發工具包)安裝序Selenium Webdriver/Selenium工作。讓我們先來看看如何下載和安裝Java。

步驟1: 導航到的網址:http://www.oracle.com/technetwork/java/javase/downloads/index.htmll

步驟2:轉到“Downloads”部分,然後選擇“JDK Download”。

Selenium IDE 30

步驟3:選擇“Accept License Agreement”單選按鈕。

Selenium IDE 31

第4步:選擇合適的安裝。在這種情況下它是“Windows 7-64'位。點選相應的連結和exe檔案儲存到硬碟。

Selenium IDE 32

第5步:執行下載的exe檔案和安裝程式嚮導。點選“Next”繼續。

Selenium IDE 33

第6步:選擇功能,然後點選“Next”。

Selenium IDE 34

步驟7:安裝程式提取和相同的進度顯示在嚮導中。

Selenium IDE 35

第8步:使用者可以選擇安裝位置,然後單擊“Next”。

Selenium IDE 36

第9步:安裝程式安裝JDK和新的檔案將被複制。

Selenium IDE 37

第10步:安裝程式安裝成功,並顯示給使用者。

Selenium IDE 38

步驟11:

要驗證是否安裝成功,轉到命令提示符,然後只需鍵入Java的一個命令。該命令的輸出如下所示。如果Java安裝不成功,或者如果它沒有安裝它會引發“unknown command”的錯誤。

Selenium IDE 48

下載並配置Eclipse

第1步:根據作業系統體系結構導航到URL :http://www.eclipse.org/downloads/ 並下載。

Selenium IDE 39

第2步:點選“Download”按鈕。

Selenium IDE 40

第3步:下載將是一個壓縮格式。解壓縮的內容。

Selenium IDE 41

第4步:找到eclipse.exe並雙擊該檔案。

Selenium IDE 42

第5步:配置工作區中選擇開發位置。

Selenium IDE 43

第6步:開啟如下圖所示的Eclipse視窗。

Selenium IDE 44

配置Firebug和FirePath

要使用Selenium RC或webdriver來工作,我們需要根據自己的XPath或編號或名稱等序列,以找出我們需要的工具/外掛元素來定位元素。定位元素的各種方式被處理,詳細在定位器章節。

步驟1:找到的網址:https://addons.mozilla.org/en-US/firefox/addon/firebug/ 並下載外掛。

Selenium IDE 62

步驟2:將外掛安裝程式顯示給使用者,它是在單擊“Install”按鈕開始安裝。

Selenium IDE 63

第3步:安裝完成後,我們可以通過啟動外掛導航到“Web Developer”>>“Firebug”。

Selenium IDE 64

第4步:Firepath一個外掛,它的工作原理中的螢火蟲幫助使用者抓住一個元素“Xpath”。導航到“https://addons.mozilla.org/en-US/firefox/addon/firepath/”安裝Firepath

Selenium IDE 65

第5步:外掛安裝程式顯示給使用者,它是在單擊“Install”按鈕開始安裝。

Selenium IDE 66

步驟6:現在推出“Firebug”導航到“Tools”>>“Webdeveloper”>>“Firebug”

Selenium IDE 67

示例

現在讓我們瞭解如何使用Firebug和firepath一個例子。為了演示目的,我們將使用www.google.com並捕捉“google.com”文字框的屬性。

步驟1:首先在下面的截圖高亮點選箭頭圖示,將其拖動到我們想捕捉屬性的物件。如下圖所示,該物件的HTML / DOM將被顯示。我們能夠捕捉到的輸入文字框的“ID”,我們可以進行互動。

Selenium IDE 68

步驟2:為了獲取物件的XPath,去“firepath”選項卡,然後執行以下步驟。

  • 點選間諜圖示。

  • 選擇控制,想要捕捉的XPath

  • 將產生的所選擇的控制的xpath

Selenium IDE 69

配置Selenium RC

現在,就讓我們來看看如何配置Selenium 的遠端控制。我們將瞭解如何開發在即將到來的章節關於Selenium RC的章節,但是現在我們明白它只是配置的一部分。

第1步:找到selenium 下載部分http://www.seleniumhq.org/download/,並通過點選它的版本號,如下圖所示下載Selenium伺服器。

Selenium IDE 45

第2步:下載後,我們需要啟動Selenium伺服器。這樣做,開啟命令提示符並導航到下載的JAR檔案保持如下所示的資料夾。

Selenium IDE 46

第3步:啟動伺服器,使用命令“'java -jar <<downloaded jar name >>"如果已安裝Java JDK正常,會得到一個成功的訊息,如下圖所示。現在,我們就可以開始寫這將涉及在下一章Selenium RC的指令碼。

Selenium IDE 47

配置Selenium的webdriver

現在,就讓我們來看看如何配置Selenium webdriver。我們將瞭解如何開發在即將到來的章節,Selenium webdriver的劇本,但是現在我們明白它只是配置的一部分。

第1步:找到selenium 下載部分http://www.seleniumhq.org/download/和下載selenium 的webdriver通過點選它的版本號,如下圖所示。

Selenium IDE 49

第2步:下載的檔案是壓縮格式,一個具有解壓縮的內容對映到專案資料夾中。

Selenium IDE 49

步驟3:如下圖所示,將解壓縮後的內容將被顯示。如何將其對映到專案資料夾,如何啟動指令碼會處理在webdriver的章節。

Selenium IDE 51

什麼是Selenium - RC

Selenium-RC意思是Selenium的遠端控制(又稱Selenium1.0),是主要Selenium專案持續很長一段時間Selenium webdriver(Selenium2.0)才生效存在性。現在Selenium RC是很難使用在webdriver具有更強大的功能,但使用者仍可以繼續開發使用rc指令碼。

它允許我們編寫的程式語言,如Java,C#,Perl,Python和PHP建立更復雜的測試,如讀寫檔案的全功率的幫助自動化的Web應用程式的UI測試,查詢資料庫,電子郵件的測試結果。

注:Selenium RC已被處理,只是為了理解圖點和唯一webdriver進行詳細說明,webdriver更強大和穩定。Selenium RC和webdriver比較在後面的章節講解。

Selenium RC的結構

Selenium RC的工作方式是這樣,客戶端庫使用Selenium RC伺服器經過每個Selenium命令來執行通訊。然後伺服器通過Selenium命令來使用Selenium核心JavaScript命令瀏覽器。

在瀏覽器中執行使用JavaScript直譯器的Selenium 命令。

Selenium IDE 52

Selenium RC分為兩部分。

  • Selenium伺服器啟動和終止,除了它的瀏覽器解釋並執行Selenese命令。它也通過攔截和驗證器和測試的應用程式之間傳遞的HTTP訊息作為HTTP代理。

  • 客戶端庫,它提供了程式語言(Java,C#,Perl,Python和PHP)和Selenium-RC伺服器中的每一個之間的介面。

RC - 指令碼

現在讓我們寫使用Selenium遠端控制的示例指令碼。讓我們用 http://www.calculator.net/ 來理解 Selenium RC。我們將使用“百分比計算器”,即在“數學計算器”模組目前執行百分比計算。

第1步:啟動Selenium 的遠端控制(帶命令提示符的幫助下)在環境設定一章解釋。

第2步:啟動Selenium RC,開啟Eclipse,並建立“New Project”,如下圖所示之後。

Selenium IDE 53

第3步:輸入專案名稱,然後單擊“Next”按鈕。

Selenium IDE 54

第4步:驗證源,專案,庫和輸出資料夾,然後單擊“Finish”。

Selenium IDE 55

第4步:右鍵單擊“project”容器,然後選擇“Configure Build Path”。

Selenium IDE 56

第5步:屬性'selrcdemo“開啟。導航到“Libaries”選項卡,並選擇“Add External JARs”。選擇我們下載了Selenium RC的jar檔案,它會出現如下圖所示。

Selenium IDE 57

第6步:將引用的庫如下圖所示顯示。

Selenium IDE 58

步驟7:通過執行右鍵單擊“src”資料夾中建立一個新的類檔案,並選擇“New”>>“class”。

Selenium IDE 59

第8步:輸入類檔案的名稱,並啟用“public static void main”,如下圖所示。

Selenium IDE 60

步驟9:在資料夾結構中建立的建立的類,如下所示。

Selenium IDE 70

第10步:現在是時候進行編碼。下面的程式碼有註釋嵌入使讀者瞭解。

/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */package testbro;import com.thoughtworks.selenium.DefaultSelenium;import com.thoughtworks.selenium.Selenium;/** * * @author USER */public class SDFB {    public static void main(String[] args) throws InterruptedException {//Instatiate the RC Server        Selenium selenium = new DefaultSelenium("localhost", 4444, "firefox", "http://www.calculator.net");        selenium.start();// Start        selenium.open("/");// Open the URL        selenium.windowMaximize();// Click on Link Math Calculator        selenium.click("xpath=.//*[@id='menu']/div[3]/a");        Thread.sleep(2500);// Wait for page load// Click on Link Percent Calculator        selenium.click("xpath=.//*[@id='menu']/div[4]/div[3]/a");        Thread.sleep(4000);// Wait for page load// Focus on text Box        selenium.focus("name=cpar1");// enter a value in Text box 1        selenium.type("css=input[name=\"cpar1\"]", "10");// enter a value in Text box 2        selenium.focus("name=cpar2");        selenium.type("css=input[name=\"cpar2\"]", "50");// Click Calculate button        selenium.click("xpath=.//*[@id='content']/table/tbody/tr/td[2]/input");// verify if the result is 5String result = selenium.getText(".//*[@id='content']/p[2]");if(result =="5"){System.out.println("Pass");}else{System.out.println("Fail");}}    }}

第11步:現在,讓我們通過點選“Run”按鈕執行該指令碼。

Selenium IDE 72

第12步:指令碼將開始執行和使用者將能夠看到在“Command History”選項卡上的命令歷史記錄。

Selenium IDE 71

步驟13:該應用程式的最終狀態顯示為如下。百分比的計算方法和它在螢幕上顯示的結果如下所示。

Selenium IDE 73

步驟14:在測試的輸出被列印的Eclipse控制檯上所示,因為我們已列印輸出到控制檯下面。實時輸出寫入到HTML檔案或簡單的文字檔案。

Selenium IDE 74

第1步:找到selenium 下載部分http://www.seleniumhq.org/download/,並通過點選它的版本號,如下圖所示下載Selenium伺服器。

Selenium IDE 45

第2步:下載後,我們需要啟動Selenium伺服器。這樣做,開啟命令提示符並導航到下載的JAR檔案保持如下所示的資料夾。

Selenium IDE 46

第3步:啟動伺服器,使用命令“'java -jar <<downloaded jar name >>"如果已安裝Java JDK正常,會得到一個成功的訊息,如下圖所示。現在,我們就可以開始寫這將涉及在下一章Selenium RC的指令碼。

Selenium IDE 47

配置Selenium的webdriver

現在,就讓我們來看看如何配置Selenium webdriver。我們將瞭解如何開發在即將到來的章節,Selenium webdriver的劇本,但是現在我們明白它只是配置的一部分。

第1步:找到selenium 下載部分http://www.seleniumhq.org/download/和下載selenium 的webdriver通過點選它的版本號,如下圖所示。

Selenium IDE 49

第2步:下載的檔案是壓縮格式,一個具有解壓縮的內容對映到專案資料夾中。

Selenium IDE 49

步驟3:如下圖所示,將解壓縮後的內容將被顯示。如何將其對映到專案資料夾,如何啟動指令碼會處理在webdriver的章節。

Selenium IDE 51

Selenium - Selenese命令

一個命令指的是什麼Selenium有執行,Selenium命令有三種類型。點選以下更多地瞭解這些命令。

定位器

元素定位器有助於Selenium識別HTML元素和命令指引用。所有這些定位器可以在Mozilla瀏覽器的firepath和firebug外掛的幫助下識別ID。請參考環境設定一章。

  • identifier=id - 使用指定的“id”屬性選擇元素,如果沒有匹配,選擇的第一要素,其@name屬性ID。

  • id=id 選擇指定的“id”屬性的元素。

  • name=name - 使用指定“name”屬性選擇第一個元素

  • dom=javascriptExpression - Selenium通過評估指定的字串,它允許我們遍歷使用JavaScript的HTML文件物件模型找到一個元素。使用者不能返回一個值,但可以評估計算作為塊的表示式。

  • xpath=xpathExpression - 找到使用XPath表示式的元素。

  • link=textPattern - 選擇連結元素(錨點標記內),其中包含文字與指定模式匹配。

  • css=cssSelectorSyntax - 使用CSS選擇器選擇元素

    Selenium Webdriver

    webdriver自動化俗稱Selenium 2.0測試Web應用程式工具。 webdriver使用不同的底層框架,Selenium 遙控器使用JavaScript的Selenium 核嵌入式已經在有一定的侷限性的瀏覽器中。 webdriver直接互動而不與Selenium 遠端控制,依賴於伺服器上的任何中介的瀏覽器。它是用在以下方面:

    在Selenium開發者社群努力下,不斷提高Selenium webdriver與Selenium的整合。

    • MULT瀏覽器測試,包括對不能很好地支援Selenium的遠端控制瀏覽器改進的功能(硒1.0)

    • 處理多個幀,多個瀏覽器視窗,彈出視窗和警報。

    • 複雜的頁面導航。

    • 高階使用者導航,如拖動和拖放。

    • 基於AJAX的UI元素

    體系結構

    webdriver最好用一個簡單的架構圖,說明,如下圖所示。

    Selenium IDE 92

    Selenium RC VS webdriver

    Selenium RC Selenium WebDriver
    Selenium RC的結構複雜,因為伺服器需要啟動在開始試執行前。 webdriver架構比Selenium RC簡單,因為它控制著從作業系統層面的瀏覽器。
    Selenium伺服器充當瀏覽器和Selenese的命令之間的中間人 webdriver直接相互作用,以在瀏覽器和使用瀏覽器的引擎進行控制。
    Selenium RC的指令碼執行速度較慢,因為它使用了Javascript來與RC互動 webdriver的速度更快,因為它直接互動使用的瀏覽器。
    Selenium RC不能支援無頭,因為它需要一個真正的瀏覽器一起工作。 webdriver可以支援無頭執行
    它是一個簡單的API 複雜,API相比,RC有點大
    減面向物件的API 純粹的面向物件的API
    不能測試移動應用程式 可測試iPhone/Android應用程式

    使用webdriver指令碼

    讓我們瞭解webdriver如何工作。為了演示目的,我們將使用http://www.calculator.net/。我們將執行“百分比計算器”,這是位於“數學計算器”。我們已經下載了所需要webdriver的JAR。請參閱環境設定一章。

    第1步:從提取Eclipse資料夾中啟動“Eclipse”。

    Selenium IDE 75

    第2步:點選“Browse”按鈕選擇工作區。

    Selenium IDE 76

    第3步:現在,建立“New Project”,從“File”選單。

    Selenium IDE 53

    第4步:輸入專案名稱,然後單擊“Next”。

    Selenium IDE 77

    第五步:進入Libraries選項卡,並選中所有的JAR包檔案,我們已經下載(請參閱環境搭建章)。新增引用Selenium webdriver的庫資料夾中的所有JAR,selenium-java-2.42.2.jar和selenium-java-2.42.2-srcs.jar

    Selenium IDE 78

    第6步:如下圖所示建立包。

    Selenium IDE 79

    第7步:現在,讓我們建立一個通過執行'Class'右鍵單擊程式包,然後選擇“New”>>“Class”

    Selenium IDE 82

    第8步:現在命名類,並讓它設定為main方法

    Selenium IDE 80

    第9步:類概要如下所示。

    Selenium IDE 81

    步驟10:現在是時候編寫程式碼了。下面的指令碼更容易理解,因為它清楚地解釋了一步,在嵌入的註釋步驟。請看看“Locators”一章,瞭解如何捕捉物件的屬性。

    import java.util.concurrent.TimeUnit;
    import org.openqa.selenium.*;
    import org.openqa.selenium.firefox.FirefoxDriver;
    
    public class webdriverdemo
    {
      public static void main(String[] args)
      {
    	WebDriver driver = new FirefoxDriver();
    
        //Puts a Implicit wait, Will wait for 10 seconds before throwing exception
    	driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    
        //Launch website
    	driver.navigate().to("http://www.calculator.net/");
    	
    	//Maximize the browser
    	driver.manage().window().maximize();
    
        // Click on Math Calculators
    	driver.findElement(By.xpath(".//*[@id='menu']/div[3]/a")).click();
      
        // Click on Percent Calculators
    	driver.findElement(By.xpath(".//*[@id='menu']/div[4]/div[3]/a")).click();
    
    	// Enter value 10 in the first number of the percent Calculator
        driver.findElement(By.id("cpar1")).sendKeys("10");
    
        // Enter value 50 in the second number of the percent Calculator
        driver.findElement(By.id("cpar2")).sendKeys("50");
        
        // Click Calculate Button
        driver.findElement(By.xpath(".//*[@id='content']/table/tbody/tr/td[2]/input")).click();
    
        // Get the Result Text based on its xpath
        String result = driver.findElement(By.xpath(".//*[@id='content']/p[2]/span/font/b")).getText();
        
    	//Print a Log In message to the screen
        System.out.println(" The Result is " + result);
        
    	//Close the Browser.
        driver.close();    
      }
    }
    

    第11步:以上指令碼的輸出將被列印在控制檯。

    Selenium IDE 83

    相關推薦

    Selenium瀏覽器自動化測試使用(2)

    Selenium - 環境安裝設定 為了開發Selenium RC或webdriver指令碼,使用者必須確保他們有初始配置完成。有很多關聯建立環境的步驟。這裡將通過詳細的講解。 下載並安裝Java 下載並配置Eclipse 配置Firebug和FirePath

    nightwatch + selenium 瀏覽器自動化測試 教程(一)

    什麼是nightwatch Nightwatch.js 是一個用於web網站或應用的自動化測試框架,使用node.js和W3C WebDriver API (熟知的selenium) 它是一個完整的瀏覽器自動化測試解決方案,能夠簡化持續整合及自動化測試編寫工作。當然它也可

    nightwatch + selenium 瀏覽器自動化測試 教程(二)

    上一篇已經講述瞭如何搭建環境,這一片主要針對語法進行 目錄 測試案例 測試案例 module.exports = { 'Demo test Google' : function (browser) { browser .url('htt

    Selenium瀏覽器自動化測試使用(1)

    Selenium - IDE模式匹配 在Selenium IDE中,如定位器,模式是selenium中經常使用的一種型別的引數。它允許使用者描述特殊字元的模式。很多時候,我們想核實文字是動態的,在這種情況下,模式匹配是非常有用的。 模式匹配是用於所有驗證點命令 - VerifyTextPresent,ve

    Selenium瀏覽器自動化測試框架

    selenium簡介 介紹   Selenium [1]  是一個用於Web應用程式測試的工具。Selenium測試直接執行在瀏覽器中,就像真正的使用者在操作一樣。支援的瀏覽器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Googl

    selenium+python自動化測試(二)對瀏覽器的簡單操作

    cat quit 報錯 簡單 conn port ted href ide 1.最大化 maximize_window 1 # coding = utf-8 2 3 from selenium import webdriver 4 chromedriver =

    搭建一個 c# + selenium + winform + 谷歌瀏覽器 -- 自動化測試環境

    搭建一個 c# + selenium + winform + 谷歌瀏覽器 – 自動化測試環境 1、需要環境 Visual Studio 2017 winformapp 測試應用 .net 4.5 windows 10 谷歌瀏覽器 2、wi

    Python學習筆記(一)——瀏覽器自動化測試工具Selenium

    看了網友用Python通過影評來分析電影是好片還是爛片,自己也有了個想法想去分析下百度貼吧的帖子是精品帖子還是水帖子。目前正在熟悉工具的使用。 會用到的庫:Selenium, pandas(資料模型),jieba(分詞器),snownlp(情感分析),worldcloud(

    selenium+python自動化測試(二)--使用webdriver操作瀏覽器

    WebDriver簡介 selenium從2.0開始集成了webdriver的API,提供了更簡單,更簡潔的程式設計介面。selenium webdriver的目標是提供一個設計良好的面向物件的API,提供了更好的支援進行web-app測試。從這篇部落格開始,

    模擬瀏覽器自動化測試工具Selenium之一eclipse整合開發部署篇

    1、背景:在網頁自動化測試和網頁表單自動互動的場景中,對動態js頁面的載入,隱藏連結爬蟲和表單元素需要載入js來解析。                   htmlunit相比較於htmlparser以及httpclient只能解析靜態頁面來說,可以支援動態js頁面的解析,

    模擬瀏覽器自動化測試工具Selenium之五Centos系統命令列下部署selenium環境試驗

    一、背景:     Selenium是一個web自動化測試框架,也支援從HTML頁面上爬取javascript生成的或AJAX的內容。     selenium2支援通過各種driver(FirfoxDriver、IternetExplorerDriver、OperaDri

    模擬瀏覽器自動化測試工具Selenium之四cssSelector元素定位開發篇

    Selenium官網的Document裡推薦使用CSS locator,而不是XPath來定位元素,原因是CSS locator比XPath locator速度快,特別是在IE下面(IE沒有自己的XPath 解析器(Parser)),比xpath更高效更準確更易編寫,缺點是

    模擬瀏覽器自動化測試工具Selenium之六設定代理篇

    在使用Selenium自動化測試時,如果需要設定代理訪問網路時,可以參考如下程式碼: package com.test; import java.util.List; import org.open

    selenium + python自動化測試unittest框架學習(三)webdriver對頁面其他控件操作(三)

    文件的 文件路徑 內容 option selenium script web 對話 對話框 1.對話框,下拉框 (1)對話框的有兩種,一種是iframe格式的,需要switch_to_iframe()進行定位,現在大部分的對話框是div格式的,這種格式的可以通過層級定位來定

    selenium + python自動化測試unittest框架學習(三)webdriver元素定位(一)

    倒數 節點 大於 文本框 webdriver 而且 單標簽 unit 遍歷 1.Webdriver原理 webdirver是一款web自動化操作工具,為瀏覽器提供統一的webdriver接口,由client也就是我們的測試腳本提交請求,remote server瀏覽器進行響

    selenium + python自動化測試unittest框架學習(一)selenium原理及應用

    自動化 網上 下載安裝 src .cn 基礎 client cnblogs pytho unittest框架的學習得益於蟲師的《selenium+python自動化實踐》這一書,該書講得很詳細,大家可以去看下,我也只學到一點點用於工作中,閑暇時記錄下自己所學才能更加印象深刻

    selenium + python自動化測試unittest框架學習(四)python導入模塊及包知識點

    腳本 selenium imp pat 程序 文件 sel sys module 在寫腳本的時候,發現導入某些模塊,經常報錯提示導入模塊失敗,這裏來惡補下python導入模塊的知識點。 1.模塊導入時文件查找順序 在腳本中,import xxx模塊時的具體步驟: (1)新建

    selenium python自動化測試 ddt數據驅動

    span print pri testcase cep .text .cn 賬號 false 安裝ddt pip install ddt 直接上代碼: 1 # coding:utf-8 2 import ddt 3 import time 4 import e

    selenium+python自動化測試(一)環境

    get gre gpo exe ren 瀏覽器版本 art lap close python裝的是3.5,chrome瀏覽器版本是17年初的 1.chromedriver 在http://chromedriver.storage.googleapis.com/index.h

    selenium+python自動化測試

    href can 分享圖片 exit async nts details pri itl F12: 右鍵 選擇復制 path 在selenium+python自動化測試(一)–環境搭建中,運行了一個測試腳本,腳本內容如下: from selenium imp