首页 > 其他 > 详细

4_Selenium框架封装

时间:2016-01-17 18:53:56      阅读:201      评论:0      收藏:0      [点我收藏+]

1 封装WebDriver

  • 封装代码编写
package com.selenium.test;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxProfile;
import org.openqa.selenium.firefox.internal.ProfilesIni;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.remote.DesiredCapabilities;

public class InitWebDriver {

    public static WebDriver myDriver(String browser) {
        
        WebDriver driver = null;
        
        if ("firefox".equals(browser.toLowerCase())) {
            
            //启动本机firefox
            ProfilesIni allProfiles = new ProfilesIni();
            FirefoxProfile profile = allProfiles.getProfile("default");
            //启动浏览器
            driver = new FirefoxDriver(profile);
            driver.manage().window().maximize();
            
        }else if ("ie".equals(browser.toLowerCase())) {
            
            //关闭保护模式
            DesiredCapabilities capability = new DesiredCapabilities();
            capability.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);    
            capability.setCapability("ignoreProtectedModeSettings",true);
            //指定驱动位置,并加载驱动
            System.setProperty("webdriver.ie.driver", "drivers/IEDriverServer.exe");
            driver = new InternetExplorerDriver(capability);
            driver.manage().window().maximize();
            
        } else if ("chrome".equals(browser.toLowerCase())) {
            
            //指定驱动位置,并加载驱动
            System.setProperty("webdriver.chrome.driver", "drivers/chromedriver.exe");
            driver = new ChromeDriver();
            driver.manage().window().maximize();
            
        }else{
            
            System.out.println("浏览器指定错误!!!");
        }
        return driver;
        
    } 

}
  • 测试代码编写

 

package com.selenium.test;

import org.openqa.selenium.WebDriver;

public class InitWebDriverTest {

    public static void main(String[] args) {
        
        WebDriver myBrowser = InitWebDriver.myDriver("firefox");
        myBrowser.navigate().to("http://www.cnblogs.com/lizitest/");
        
//        WebDriver myBrowser = InitWebDriver.myDriver("ie");
//        myBrowser.navigate().to("http://www.cnblogs.com/lizitest/");
//        
//        WebDriver myBrowser = InitWebDriver.myDriver("chrome");
//        myBrowser.navigate().to("http://www.cnblogs.com/lizitest/");

    }

}

 2 使用配置文件

  •  加载jar包

技术分享

  • 编写config文件
<?xml version="1.0" encoding="UTF-8"?>
<chuanke>
    <browser>firefox</browser>
    <url>http://www.cnblogs.com/lizitest/</url>
    <waitTime>2</waitTime>
</chuanke>
  • 解析XML文件代码
package com.selenium.tool;

import java.io.File;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;


/**
 * @author 栗子测试
 * 使用SAX(Simple APIs for XML,也即XML简单应用程序接口)解析XML文件
 *
 */
public class ParseXML {
    
    private Document document;
    
    /**
     * 构造函数
     * 在新建对象的同时加载XML文件
     */
    public ParseXML(String filePath){
        this.loadXML(filePath);
    }
    
    /**
     * 加载XML文件
     */
    public void loadXML(String filePath){
        
        //新建文件
        File file = new File(filePath);
        
        if(file.exists()){
            //dom4j包中SAXReader
            SAXReader saxReader = new SAXReader();
            try {
                
                document = saxReader.read(file);
                
            } catch (DocumentException e) {
                
                e.printStackTrace();
            }
        }else{
            
            System.out.println("XML文件不存在");
        }
    }

    
    /**
     * 获取节点上的文本
     */
    public String getSingleNodeText(String nodePath){
        
        Element element = (Element) document.selectSingleNode(nodePath);
        
        if(element != null){
            
            return element.getTextTrim();
            
        }else{
            
            System.out.println("节点不存在!");
            return null;
        }
    }
    
}
  • 解析config文件
package com.selenium.util;

import com.selenium.tool.ParseXML;

public interface Config {

    public static ParseXML xml = new ParseXML(".\\config\\config.xml");
    public static String browser = xml.getSingleNodeText("//browser");
    public static String url = xml.getSingleNodeText("//url");
    public static String waitTime = xml.getSingleNodeText("//waitTime");
}
  • 测试代码
package com.selenium.util;

import org.openqa.selenium.WebDriver;

public class InitWebDriverTest2 {

    public static void main(String[] args) {
        
        WebDriver myBrowser = InitWebDriver.myDriver(Config.browser);
        myBrowser.navigate().to(Config.url);

    }

}

 

 

 

 

 

栗子测试

  • 所有文章均为原创,是栗子测试所有人员智慧的结晶,如有转载请标明出处
  • 如果您在阅读之后觉得有所收获,请点击右下角推荐
  • QQ:2472471982,欢迎大家前来咨询和探讨(暗号:栗子测试)

 
 

4_Selenium框架封装

原文:http://www.cnblogs.com/lizitest/p/5137407.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!