Blame view

src/test/java/com/essa/framework/BrowserEngine.java 5.98 KB
fdd4bb76   zengjin55   windows
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
  package com.essa.framework;
  
  import java.io.FileInputStream;
  import java.io.IOException;
  import java.io.InputStream;
  import java.util.Properties;
  import java.util.concurrent.TimeUnit;
  
  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.ie.InternetExplorerDriver;
  import org.openqa.selenium.remote.CapabilityType;
  import org.openqa.selenium.remote.DesiredCapabilities;
  
  public class BrowserEngine {  
      
09fdf50f   Administrator   bpms
19
      private static String browserName;  
fdd4bb76   zengjin55   windows
20
      private String serverURL;  
09fdf50f   Administrator   bpms
21
22
23
      private String buyerURL;
      private static WebDriver driver;  
      private static String env;
fdd4bb76   zengjin55   windows
24
25
26
27
28
        
      public void initConfigData() throws IOException{  
            
          Properties p = new Properties();  
          // 加载配置文件  
09fdf50f   Administrator   bpms
29
30
  //        InputStream ips = new FileInputStream(".\\src\\main\\resources\\TestConfig\\config.properties");  
          InputStream ips = new FileInputStream(".\\config.properties");  
fdd4bb76   zengjin55   windows
31
32
33
          p.load(ips);  
            
          Logger.Output(LogType.LogTypeName.INFO, "开始从配置文件中选择浏览器");  
09fdf50f   Administrator   bpms
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
  //        browserName=p.getProperty("browserName");//使用jframe要注释
          Logger.Output(LogType.LogTypeName.INFO, "所选择的浏览器类型为: "+ browserName); 
          if (env=="DIT") {
          	serverURL = p.getProperty("DIT"); 
          	buyerURL = p.getProperty("BDIT");
          	}else if (env =="HOTFIX") {
          		serverURL = p.getProperty("HOTFIX");
          		buyerURL = p.getProperty("BHOTFIX");
  			}else if (env == "UAT") {
  				serverURL = p.getProperty("UAT"); 
  				buyerURL = p.getProperty("BUAT");
  			}else {
  				serverURL = p.getProperty("SIT"); 
  				buyerURL = p.getProperty("BSIT");
  			}
          Logger.Output(LogType.LogTypeName.INFO, "所测试的环境为:"+ env);  
fdd4bb76   zengjin55   windows
50
51
          ips.close();  
      }  
09fdf50f   Administrator   bpms
52
53
54
55
56
57
58
59
60
      /**
       * bpms环境初始化
       * @param environment
       * @param browser
       */
      public static void setInit(String environment,String browser) {
      	browserName = browser;
      	env = environment;
      }
fdd4bb76   zengjin55   windows
61
        
09fdf50f   Administrator   bpms
62
63
64
65
      /**
       * bpms获取地址方法
       * @return
       */
fdd4bb76   zengjin55   windows
66
67
68
69
70
71
72
73
74
75
      public WebDriver getBrowser(){  
          
      	if(browserName.equalsIgnoreCase("Firefox")){  
          	
              System.setProperty("webdriver.gecko.driver", ".\\src\\main\\resources\\geckodriver.exe");    
              driver = createFireFoxDriver();  
              Logger.Output(LogType.LogTypeName.INFO, "正在启动FireFox浏览器");  
                
          }
      	else if(browserName.equals("Chrome")){  
09fdf50f   Administrator   bpms
76
77
  //    		System.setProperty("webdriver.chrome.driver", ".\\src\\main\\resources\\chromedriver.exe"); 
              System.setProperty("webdriver.chrome.driver", ".\\chromedriver.exe");  
fdd4bb76   zengjin55   windows
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
              driver= new ChromeDriver();  
              Logger.Output(LogType.LogTypeName.INFO, "正在启动Chrome浏览器");  
                
          }else if(browserName.equalsIgnoreCase("IE")){  
                
              System.setProperty("webdriver.ie.driver", ".\\src\\main\resources\\IEDriverServer.exe");  
              driver= new InternetExplorerDriver();  
              Logger.Output(LogType.LogTypeName.INFO, "正在启动IE浏览器");  
          }
      	driver.manage().window().maximize();  
          Logger.Output(LogType.LogTypeName.INFO, "窗口最大化");
          driver.get(serverURL);  
          Logger.Output(LogType.LogTypeName.INFO, "打开URL: "+ serverURL);  
          callWait(5);  
          return driver;  
      }  
09fdf50f   Administrator   bpms
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
     
      /**
       * buyer获取浏览器,并读取buyer的地址
       * @return
       */
      public WebDriver buyerGetBrowser() {
      	if (browserName.equals("Chrome")) {
  //    		System.setProperty("webdriver.chrome.driver", ".\\src\\main\\resources\\chromedriver.exe");
      		System.setProperty("webdriver.chrome.driver", ".\\chromedriver.exe"); 
      		driver= new ChromeDriver();  
              Logger.Output(LogType.LogTypeName.INFO, "正在启动Chrome浏览器");  
  		}
      	driver.manage().window().maximize();  
          Logger.Output(LogType.LogTypeName.INFO, "窗口最大化");
          driver.get(buyerURL);  
          Logger.Output(LogType.LogTypeName.INFO, "打开URL: "+ buyerURL);  
          callWait(5);  
          return driver;  
      }
fdd4bb76   zengjin55   windows
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
        
      /* 
       * 关闭浏览器并退出方法 
       */  
        
      public void tearDown() throws InterruptedException{  
            
          Logger.Output(LogType.LogTypeName.INFO, "关闭浏览器");  
          driver.quit();  
          Thread.sleep(3000);  
      }  
        
      /* 
       * 隐式时间等待方法 
       */  
      public void callWait(int time){  
            
          driver.manage().timeouts().implicitlyWait(time, TimeUnit.SECONDS);  
          Logger.Output(LogType.LogTypeName.INFO, "设置隐性等待"+time+" 秒");  
      }  
        
        
      /* 
       * createFireFox Driver 
       * @Param: null 
       * @return: WebDriver 
       */  
        
      private WebDriver createFireFoxDriver() {  
            
          WebDriver driver = null;  
          FirefoxProfile firefoxProfile = new FirefoxProfile();  
    
          firefoxProfile.setPreference("prefs.converted-to-utf8", true);  
          //set download folder to default folder: TestDownload  
          firefoxProfile.setPreference("browser.download.folderList", 2);  
          firefoxProfile.setPreference("browser.download.dir", ".\\TestDownload");  
            
          try {  
                  driver = new FirefoxDriver();  
          } catch (Exception e) {  
              Logger.Output(LogType.LogTypeName.ERROR, e.getMessage());  
              Logger.Output(LogType.LogTypeName.ERROR, "Failed to initilize the Firefox driver");  
          }  
          return driver;  
      }  
      public  void anQuan() {
      	 // 创建DesiredCapabilities类的一个对象实例  
          DesiredCapabilities cap=DesiredCapabilities.chrome();  
          // 设置变量ACCEPT_SSL_CERTS的值为True  
          cap.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
          Logger.Output(LogType.LogTypeName.INFO, "设置浏览器可以打开不安全链接");
      }
  }