Webdriver Ui自动化测试,使用工厂方法生产不同浏览器的webdriver实例
来源:互联网 发布:linux怎么复制文件内容 编辑:程序博客网 时间:2024/06/02 16:11
定义浏览器驱动实例的接口:
package ec.qa.autotest.ui.utility.base;/** * 实例化目标浏览器接口 * @author xin.wang * */public interface IBrowserDriverBase {public void configBrowser() throws Exception;public <T> T getWebDriver()throws Exception;}
实现以上接口的子类
ChromeDriver:
package ec.qa.autotest.ui.testbase;import java.io.File;import org.openqa.selenium.chrome.ChromeDriver;import org.openqa.selenium.chrome.ChromeDriverService;import ec.qa.autotest.ui.constants.CommonConstants;import ec.qa.autotest.ui.utility.base.IBrowserDriverBase;public class ChromeBrowserDriver implements IBrowserDriverBase {private ChromeDriverService chromeService = null;public void configBrowser() throws Exception {System.setProperty(CommonConstants.CHROME_DRIVER_FIELD, CommonConstants.CHROME_DRIVER_PATH);chromeService = new ChromeDriverService.Builder().usingDriverExecutable(new File(CommonConstants.CHROME_DRIVER_PATH)).usingAnyFreePort().build();chromeService.start();}@SuppressWarnings("unchecked")public <T> T getWebDriver() throws Exception {configBrowser();return (T) new ChromeDriver(chromeService);}}
IEDriver :
package ec.qa.autotest.ui.testbase;import org.openqa.selenium.ie.InternetExplorerDriver;import org.openqa.selenium.remote.DesiredCapabilities;import ec.qa.autotest.ui.constants.CommonConstants;import ec.qa.autotest.ui.utility.base.IBrowserDriverBase;public class IEBrowserDriver implements IBrowserDriverBase {private DesiredCapabilities dcIE;public void configBrowser() throws Exception {System.setProperty(CommonConstants.IE_DRIVER_FIELD, CommonConstants.IE_DRIVER_PATH);dcIE = DesiredCapabilities.internetExplorer();dcIE.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);dcIE.setCapability(InternetExplorerDriver.IGNORE_ZOOM_SETTING, true);}@SuppressWarnings("unchecked")public <T> T getWebDriver() throws Exception {return (T) new InternetExplorerDriver(dcIE);}}
FireFoxDriver:
package ec.qa.autotest.ui.testbase;import org.openqa.selenium.firefox.FirefoxDriver;import ec.qa.autotest.ui.utility.base.IBrowserDriverBase;public class FireFoxBrowserDriver implements IBrowserDriverBase {public void configBrowser() throws Exception {// TODO Auto-generated method stub}@SuppressWarnings("unchecked")public <T> T getWebDriver() throws Exception {// TODO Auto-generated method stubreturn (T) new FirefoxDriver();}}
定义工厂接口:
package ec.qa.autotest.ui.utility.base;/** * @author xin.wang Webdriver 工厂接口 */public interface IWebdriverFactory {public <T> void setDriver(T driver)throws Exception;public <T> T getDriver(String classPackageName) throws Exception;}
定义具体工厂类:
package ec.qa.autotest.ui.testbase;import ec.qa.autotest.ui.utility.base.IBrowserDriverBase;import ec.qa.autotest.ui.utility.base.IWebdriverFactory;/** * @author xin.wang * @see 用于配置和生产基于不同浏览器的webdriver。 */public class DriverFactory implements IWebdriverFactory {/** * @author xin.wang * @param classPackageName * 浏览器类型 * @throws Exception * @see 根据指定的浏览器获取并初始化webdriver对象实例 **/public <T> T getDriver(String classPackageName) throws Exception {Object obj = Class.forName(classPackageName).newInstance();return ((IBrowserDriverBase)obj).getWebDriver();}public <T> void setDriver(T driver) {// TODO Auto-generated method stub}}
至此你可以在测试过程中 在设当位置初始化webdriver:
@BeforeMethodprivate void configDriver(ConfigDriverParameters cp) throws Exception {RemoteWebDriver webDriver;IWebdriverFactory iw = new DriverFactory();webDriver = iw.getDriver(browserType);new InitPageObject(this);webDriver.manage().timeouts().implicitlyWait(cp.getSerachElementTime(), TimeUnit.SECONDS);webDriver.manage().window().maximize();webDriver.manage().timeouts().pageLoadTimeout(cp.getPageLoadTime(), TimeUnit.SECONDS);}
browserType 在配置文件中:
#启动目标浏览器驱动运行测试#Browser.Type=ec.qa.autotest.ui.testbase.IEBrowserDriver Browser.Type=ec.qa.autotest.ui.testbase.ChromeBrowserDriver#Browser.Type=ec.qa.autotest.ui.testbase.FireFoxBrowserDriver
0 0
- Webdriver Ui自动化测试,使用工厂方法生产不同浏览器的webdriver实例
- selenium webdriver + Junit 自动化测试:打开不同浏览器网页
- Webdriver UI自动化测试使用mybatis访问数据库
- selenium+python自动化测试(二)--使用webdriver操作浏览器
- Webdriver UI自动化测试 实现自动登录
- webdriver UI自动化测试执行JS脚本
- Selenium Webdriver 编写UI自动化测试脚本
- selenium(webdriver)--不同浏览器处理SSL Certificate Error的方法
- selenium webdriver启动不同浏览器驱动的方法
- Selenium不同浏览器WebDriver处理方法
- webdriver+selenium+junit,打开不同浏览器方法
- webdriver 不同浏览器驱动
- webdriver 不同浏览器驱动
- webdriver 自动化测试
- 自动化测试--selenium-webDriver
- webdriver自动化测试
- python3里使用selenium webdriver自动化测试
- 使用selenium和webdriver进行自动化测试
- 自定义View音量调节
- Mysql学习之cannot add foreign key constraint
- NSLogger使用
- ref 和out以及params参数详解
- 通用的自定义BaseActivity类,集成多种基本功能
- Webdriver Ui自动化测试,使用工厂方法生产不同浏览器的webdriver实例
- 百度地图v3.6.1接入1--基本地图功能
- CentOS7.1下python2.7.10安装PyQt4
- #import和@class的区别
- Java 调用构造器会不会一定产生新对象
- iOS文件目录结构
- 日志系统设计(一)&(二)
- maven pom.xml详解
- Redis中的事务