Selenium+Java完整框架搭建(2019完整版)


 一、WebDriver框架開發實戰

1、框架的思想

(1)什么是框架?

  • 框架是可以被應用開發者定制的應用骨架

(2)為什么要寫框架?

  • 提高腳本可維護性
  • 提高編寫腳本的速度
  • 提高腳本可閱讀性

(3)框架的幾個要素?

  • driver管理,等待管理,常用方法封裝,LOG,常用類封裝,數據,失敗重跑等等

2、前期准備-框架搭建前期步驟

  • 通過IDEA新建個項目名TestAutomation2019的Maven工程
  • 導入Selenium和TestNG對應的jar包
  • 在工程根目錄新建一個driver文件夾,放置driver
  • 新建一個包:com.lixx

3、Driver管理

  • 在com.lixx下新建driver包
  • 在driver包下新建SeleniumDriver類
  • 封裝driver
  • 代碼實例演示
  • 測試
package com.lixx.drivers;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.edge.EdgeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
public class SeleniumDriver1 {
    public static WebDriver driver;
    public static WebDriver initialDriver(String browser){
        //獲取當前工程根目錄
        String path = System.getProperty("user.dir");
        if (browser.equals("chrome")){
            System.setProperty("webdriver.chrome.driver", path + "/driver/chromedriver.exe");
            driver = new ChromeDriver();
        }else if (browser.equals("ie")){
            System.setProperty("webdriver.ie.driver", path + "/driver/IEDriverServer.exe");
            driver = new InternetExplorerDriver();
        }else if (browser.equals("firefox")){
            driver = new FirefoxDriver();
        }else if (browser.equals("edge")){
            System.setProperty("webdriver.edge.driver", path + "/driver/MicrosoftWebDriver.exe");
            driver = new EdgeDriver();
        }else {
            System.out.println("您輸入的瀏覽器名稱有誤,請確認!");
        }
        return driver;
    }
}

4、元素等待方法封裝

  • 在com.autoframework下新建element包
  • 在element包下新建WebElementUtils類並繼承SeleniumDriver類
  • 二次封裝findElement和findElements方法
  • 代碼實例演示
  • 測試

5、Log4j整合

  • 配置pom.xml文件,添加log4相關jar包
  • 在工程根目錄下新建configs文件夾並新建log4j.properties文件
  • 在log4j.properties配置文件中加入需要的配置
  • 新建com.lixx.logger包
  • 在logger包下新建LoggerController類
  • 代碼示例
  • 測試

6、框架常用類整合

常用類封裝-隨機數封裝

  • 在com.autoframework下新建tools包
  • 在tools包下新建RandomNum下
  • 實現時間戳和隨機數生成
  • 部分常用方法封裝實例演示
  • 測試

 截圖方法封裝

Assert類封裝

通過TestNg做數據驅動

PO理念的引入

監聽錯誤自動重跑和截圖

  • 從github上下載已經封裝好的程序 https://github.com/NetEase/arrow
  • 復制到項目里面,修改各個類導入包的路徑
  • 刪除我們不想要PowerEmailableReporter.java文件
  • 在config文件下新建config.properties文件,並添加如下:retrycount=1
  • 修改ConfigReader.java類,讀取配置文件路徑
  •  添加自動截圖方法到TestResultListener.java類
  • 在運行的.xml文件里面添加監聽

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM