package org.webdriver.patatiumwebui.utils; import org.webdriver.patatiumwebui.utils.Log; import org.openqa.selenium.Platform; 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.htmlunit.HtmlUnitDriver; import org.openqa.selenium.ie.InternetExplorerDriver; import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.remote.RemoteWebDriver; import java.net.MalformedURLException; import java.net.URL; import org.testng.annotations.Parameters; import org.testng.annotations.BeforeTest; import org.testng.annotations.AfterTest; public class TestBaseCase { public static WebDriver driver; //方法描述 public static String description; public Log log=new Log(this.getClass().getSuperclass()); @BeforeTest @Parameters({"driver","nodeURL"}) public void setup( String driver,String nodeURL) throws MalformedURLException { log.info("------------------开始执行测试---------------"); if(nodeURL.equals("")||nodeURL.isEmpty()) { log.info("读取testng.xml配置的"+driver+"浏览器并将其初始化\n"); try { this.driver=setDriver(driver); } catch (Exception e) { // TODO: handle exception //System.out.println("环境配置错误"); log.error("没有成功浏览器环境配置错误"); e.printStackTrace(); } System.out.println(nodeURL); this.driver.manage().window().maximize(); } else { log.info("读取xml配置:浏览器:"+driver+";gridNodeURL:"+nodeURL); try { this.driver=setRemoteDriver(driver,nodeURL); } catch (Exception e) { // TODO: handle exception log.error("没有成功浏览器环境配置错误"); } this.driver.manage().window().maximize(); } } @AfterTest public void tearDown() { this.driver.close(); this.driver.quit(); log.info("-------------结束测试,并关闭退出浏览器-------------"); } /** * 用枚举类型列出浏览器列表,用于设置浏览器类型的函数参数 * @author zheng * */ private WebDriver setDriver(String browsername) { switch (browsername) { case "FirefoxDriver" : System.setProperty("webdriver.firefox.bin", "C:/Program Files (x86)/Mozilla Firefox/firefox.exe"); FirefoxProfile firefoxProfile=new FirefoxProfile(); //设置默认下载路径 firefoxProfile.setPreference("browser.download.folderList", 2); firefoxProfile.setPreference("browser.download.dir", "D:\\自动化测试下载文件"); //加载firebug插件 firefoxProfile.setPreference("extensions.firebug.currentVersion", "2.0.13"); firefoxProfile.setPreference("extensions.firebug.allPagesActivation", "none"); //加载firepath插件 firefoxProfile.setPreference("extensions.firepath.currentVersion", "0.9.7.1.1"); firefoxProfile.setPreference("extensions.firepath.allPagesActivation", "on"); this.driver=new FirefoxDriver(firefoxProfile); break; case "ChormeDriver": System.setProperty("webdriver.chrome.driver", "resource\\chromedriver.exe"); this.driver=new ChromeDriver(); break; case "InternetExplorerDriver": System.setProperty("webdriver.ie.driver", "resource\\IEDriverServer_Win32_2.48.0\\IEDriverServer.exe"); DesiredCapabilities dc = DesiredCapabilities.internetExplorer(); dc.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true); dc.setCapability("ignoreProtectedModeSettings", true); this.driver=new InternetExplorerDriver(dc); break; case "HtmlUnitDriver": this.driver=new HtmlUnitDriver(); break; default: this.driver=new FirefoxDriver(); break; } return driver; } private WebDriver setRemoteDriver(String browsername,String nodeURL) throws MalformedURLException { switch (browsername) { case "FirefoxDriver" : System.setProperty("webdriver.firefox.bin", "C:/Program Files (x86)/Mozilla Firefox/firefox.exe"); FirefoxProfile firefoxProfile=new FirefoxProfile(); //设置默认下载路径 firefoxProfile.setPreference("browser.download.folderList", 2); firefoxProfile.setPreference("browser.download.dir", "D:\\自动化测试下载文件"); //加载firebug插件 firefoxProfile.setPreference("extensions.firebug.currentVersion", "2.0.13"); firefoxProfile.setPreference("extensions.firebug.allPagesActivation", "none"); //加载firepath插件 firefoxProfile.setPreference("extensions.firepath.currentVersion", "0.9.7.1.1"); firefoxProfile.setPreference("extensions.firepath.allPagesActivation", "on"); DesiredCapabilities capabilities=DesiredCapabilities.firefox(); capabilities.setBrowserName("firefox"); capabilities.setPlatform(Platform.WINDOWS); //driver= new RemoteWebDriver(new URL("http://192.168.0.205:4455/wd/hub"), capabilities); driver= new RemoteWebDriver(new URL(nodeURL), capabilities); break; case "ChormeDriver": System.setProperty("webdriver.chrome.driver", "E:\\autotest\\autotmaiton\\resource\\chromedriver.exe"); //driver=new ChromeDriver(); DesiredCapabilities dcchorme=DesiredCapabilities.chrome(); dcchorme.setBrowserName("chrome"); dcchorme.setVersion("46.0.2490.86 m"); dcchorme.setPlatform(Platform.WINDOWS); driver=new RemoteWebDriver(new URL(nodeURL), dcchorme); break; case "InternetExplorerDriver-8": System.setProperty("webdriver.ie.driver", "E:\\autotest\\autotmaiton\\resource\\IEDriverServer_Win32_2.48.0\\IEDriverServer.exe"); DesiredCapabilities dc = DesiredCapabilities.internetExplorer(); dc.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true); dc.setCapability("ignoreProtectedModeSettings", true); dc.setBrowserName("internet explorer"); dc.setVersion("8.0.6001.18702"); dc.setPlatform(Platform.XP); driver= new RemoteWebDriver(new URL(nodeURL), dc); break; case "InternetExplorerDriver-9": System.setProperty("webdriver.ie.driver", "E:\\autotest\\autotmaiton\\resource\\IEDriverServer_x64_2.48.0\\IEDriverServer.exe"); DesiredCapabilities dc2 = DesiredCapabilities.internetExplorer(); dc2.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true); dc2.setCapability("ignoreProtectedModeSettings", true); dc2.setBrowserName("internet explorer"); dc2.setVersion("9.0.8112.16421"); dc2.setPlatform(Platform.WINDOWS); driver= new RemoteWebDriver(new URL(nodeURL), dc2); //driver=new InternetExplorerDriver(dc2); break; case "HtmlUnitDriver": this.driver=new HtmlUnitDriver(); break; default: this.driver=new FirefoxDriver(); break; } return driver; } public static void main(String args[]) { WebDriver driver2=new FirefoxDriver(); driver2.get("http://www.baidu.com"); } }