Blame view

src/test/java/com/essa/framework/BrowserEngine.java 5.15 KB
fdd4bb76   zengjin55   windows
1
2
3
4
5
6
7
8
9
10
11
  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;
fdd4bb76   zengjin55   windows
12
13
14
15
16
17
  import org.openqa.selenium.ie.InternetExplorerDriver;
  import org.openqa.selenium.remote.CapabilityType;
  import org.openqa.selenium.remote.DesiredCapabilities;
  
  public class BrowserEngine {  
      
09fdf50f   Administrator   bpms
18
      private static String browserName;  
fdd4bb76   zengjin55   windows
19
      private String serverURL;  
09fdf50f   Administrator   bpms
20
21
      private String buyerURL;
      private static WebDriver driver;  
60b8852f   Administrator   test
22
      private static String env1;
fdd4bb76   zengjin55   windows
23
24
        
      public void initConfigData() throws IOException{  
fdd4bb76   zengjin55   windows
25
26
          Properties p = new Properties();  
          // 加载配置文件  
60b8852f   Administrator   test
27
          InputStream ips = new FileInputStream(".\\resources\\config.properties"); 
fdd4bb76   zengjin55   windows
28
          p.load(ips);  
fdd4bb76   zengjin55   windows
29
          Logger.Output(LogType.LogTypeName.INFO, "开始从配置文件中选择浏览器");  
60b8852f   Administrator   test
30
          browserName=p.getProperty("browserName");//使用jframe要注释
09fdf50f   Administrator   bpms
31
          Logger.Output(LogType.LogTypeName.INFO, "所选择的浏览器类型为: "+ browserName); 
60b8852f   Administrator   test
32
          if (env1=="DIT") {
09fdf50f   Administrator   bpms
33
34
          	serverURL = p.getProperty("DIT"); 
          	buyerURL = p.getProperty("BDIT");
60b8852f   Administrator   test
35
          	}else if (env1 =="HOTFIX") {
09fdf50f   Administrator   bpms
36
37
          		serverURL = p.getProperty("HOTFIX");
          		buyerURL = p.getProperty("BHOTFIX");
60b8852f   Administrator   test
38
  			}else if (env1 == "UAT") {
09fdf50f   Administrator   bpms
39
40
41
42
43
44
  				serverURL = p.getProperty("UAT"); 
  				buyerURL = p.getProperty("BUAT");
  			}else {
  				serverURL = p.getProperty("SIT"); 
  				buyerURL = p.getProperty("BSIT");
  			}
60b8852f   Administrator   test
45
46
          Logger.Output(LogType.LogTypeName.INFO, "所测试的环境为:"+ env1);  
          Model.setEnv(env1);//我也不知道为什么执行完上面的代码后,env会变为sit
fdd4bb76   zengjin55   windows
47
48
          ips.close();  
      }  
09fdf50f   Administrator   bpms
49
50
51
52
53
54
55
      /**
       * bpms环境初始化
       * @param environment
       * @param browser
       */
      public static void setInit(String environment,String browser) {
      	browserName = browser;
60b8852f   Administrator   test
56
      	env1 = environment;
09fdf50f   Administrator   bpms
57
      }
fdd4bb76   zengjin55   windows
58
        
09fdf50f   Administrator   bpms
59
60
61
62
      /**
       * bpms获取地址方法
       * @return
       */
fdd4bb76   zengjin55   windows
63
64
65
      public WebDriver getBrowser(){  
          
      	if(browserName.equalsIgnoreCase("Firefox")){  
60b8852f   Administrator   test
66
67
              System.setProperty("webdriver.gecko.driver", ".\\resources\\geckodriver.exe");    
              driver = new FirefoxDriver();  
fdd4bb76   zengjin55   windows
68
              Logger.Output(LogType.LogTypeName.INFO, "正在启动FireFox浏览器");  
fdd4bb76   zengjin55   windows
69
70
          }
      	else if(browserName.equals("Chrome")){  
60b8852f   Administrator   test
71
              System.setProperty("webdriver.chrome.driver", ".\\resources\\chromedriver.exe");  //图形界面
fdd4bb76   zengjin55   windows
72
73
              driver= new ChromeDriver();  
              Logger.Output(LogType.LogTypeName.INFO, "正在启动Chrome浏览器");  
fdd4bb76   zengjin55   windows
74
          }else if(browserName.equalsIgnoreCase("IE")){  
fdd4bb76   zengjin55   windows
75
76
77
78
79
80
81
82
83
84
85
              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
86
87
88
89
90
91
92
     
      /**
       * buyer获取浏览器,并读取buyer的地址
       * @return
       */
      public WebDriver buyerGetBrowser() {
      	if (browserName.equals("Chrome")) {
60b8852f   Administrator   test
93
      		System.setProperty("webdriver.chrome.driver", ".\\resources\\chromedriver.exe"); //图形界面
09fdf50f   Administrator   bpms
94
95
      		driver= new ChromeDriver();  
              Logger.Output(LogType.LogTypeName.INFO, "正在启动Chrome浏览器");  
60b8852f   Administrator   test
96
97
98
99
  		}else if (browserName.equals("Firefox")) {
  			System.setProperty("webdriver.gecko.driver", ".\\resources\\geckodriver.exe");    
              driver = new FirefoxDriver();  
              Logger.Output(LogType.LogTypeName.INFO, "正在启动FireFox浏览器"); 
09fdf50f   Administrator   bpms
100
101
102
103
104
105
106
107
  		}
      	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
108
        
fdd4bb76   zengjin55   windows
109
        
60b8852f   Administrator   test
110
111
112
113
      /**
       * 退出驱动
       * @throws InterruptedException
       */
fdd4bb76   zengjin55   windows
114
      public void tearDown() throws InterruptedException{  
fdd4bb76   zengjin55   windows
115
116
117
118
119
          Logger.Output(LogType.LogTypeName.INFO, "关闭浏览器");  
          driver.quit();  
          Thread.sleep(3000);  
      }  
        
60b8852f   Administrator   test
120
      /**
fdd4bb76   zengjin55   windows
121
       * 隐式时间等待方法 
60b8852f   Administrator   test
122
123
       * @param time
       */
fdd4bb76   zengjin55   windows
124
125
126
127
128
      public void callWait(int time){  
            
          driver.manage().timeouts().implicitlyWait(time, TimeUnit.SECONDS);  
          Logger.Output(LogType.LogTypeName.INFO, "设置隐性等待"+time+" 秒");  
      }  
60b8852f   Administrator   test
129
130
131
      /**
       *跳过安全链接 
       */
fdd4bb76   zengjin55   windows
132
133
134
135
136
137
138
139
      public  void anQuan() {
      	 // 创建DesiredCapabilities类的一个对象实例  
          DesiredCapabilities cap=DesiredCapabilities.chrome();  
          // 设置变量ACCEPT_SSL_CERTS的值为True  
          cap.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
          Logger.Output(LogType.LogTypeName.INFO, "设置浏览器可以打开不安全链接");
      }
  }