BrowserEngine.java
5.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
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
package com.essa.framework;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import java.util.concurrent.TimeUnit;
public class BrowserEngine {
private static BrowserEnum browserEnum;
private WebDriver driver;
private static EnvEnum env1;
private ConfigProperties configProperties;
public void initConfigData() {
//有些地方是没有设置初始化环境直接调用这个方法的,所以默认是sit
env1 = null == env1 ? EnvEnum.SIT : env1;
configProperties = ConfigProperties.getConfig(env1);
browserEnum = BrowserEnum.fromCode(configProperties.getBrowserName());
Model.setEnv(env1.getCode());//我也不知道为什么执行完上面的代码后,env会变为sit
}
/**
* bpms环境初始化
* @param environment
* @param browser
*/
public static void setInit(String environment,String browser) {
browserEnum = BrowserEnum.fromCode(browser);
env1 = EnvEnum.fromCode(environment);
}
/**
* bpms获取地址方法
* @return
*/
private WebDriver getBrowser(BrowserEnum browser,String url,int waitTime){
System.setProperty(browser.getExeName(), SystemConstant.RESOURCE_PATH + browser.getDriver());
//根据浏览器类型,初始化对应的驱动
switch(browser) {
case Firefox:{
driver = new FirefoxDriver();
break;
}
case Chrome: {
driver = new ChromeDriver();
break;
}
case IE: {
driver = new InternetExplorerDriver();
}
}
Logger.Output(LogType.LogTypeName.INFO, "正在启动" + browser.getCode() +"浏览器");
driver.manage().window().maximize();
Logger.Output(LogType.LogTypeName.INFO, "窗口最大化");
driver.get(url);
Logger.Output(LogType.LogTypeName.INFO, "打开URL: "+ url);
callWait(waitTime);
return driver;
}
/**
* buyer获取浏览器,并读取buyer的地址
* @return
*/
public WebDriver buyerGetBrowser() {
/*if (browserName.equals("Chrome")) {
System.setProperty("webdriver.chrome.driver", ".\\resources\\chromedriver.exe"); //图形界面
driver= new ChromeDriver();
Logger.Output(LogType.LogTypeName.INFO, "正在启动Chrome浏览器");
}else if (browserName.equals("Firefox")) {
System.setProperty("webdriver.gecko.driver", ".\\resources\\geckodriver.exe");
driver = new FirefoxDriver();
Logger.Output(LogType.LogTypeName.INFO, "正在启动FireFox浏览器");
}
driver.manage().window().maximize();
Logger.Output(LogType.LogTypeName.INFO, "窗口最大化");
driver.get(buyerURL);
Logger.Output(LogType.LogTypeName.INFO, "打开URL: "+ buyerURL);
callWait(5); */
return getBrowser(browserEnum,configProperties.getBuyerURL(),5);
// return driver;
}
public WebDriver getBrowser() {
/*if(browserName.equalsIgnoreCase("Firefox")){
System.setProperty("webdriver.gecko.driver", ".\\resources\\geckodriver.exe");
driver = new FirefoxDriver();
Logger.Output(LogType.LogTypeName.INFO, "正在启动FireFox浏览器");
}
else if(browserName.equals("Chrome")){
System.setProperty("webdriver.chrome.driver", ".\\src\\main\\resources\\chromedriver.exe"); //图形界面
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 getBrowser(browserEnum,configProperties.getServerURL(),5);
// return driver;
}
/**
* 退出驱动
* @throws InterruptedException
*/
public void tearDown() throws InterruptedException{
Logger.Output(LogType.LogTypeName.INFO, "关闭浏览器");
driver.quit();
Thread.sleep(3000);
}
/**
* 隐式时间等待方法
* @param time
*/
public void callWait(int time){
driver.manage().timeouts().implicitlyWait(time, TimeUnit.SECONDS);
Logger.Output(LogType.LogTypeName.INFO, "设置隐性等待"+time+" 秒");
}
/**
*跳过安全链接
*/
public void anQuan() {
// 创建DesiredCapabilities类的一个对象实例
DesiredCapabilities cap=DesiredCapabilities.chrome();
// 设置变量ACCEPT_SSL_CERTS的值为True
cap.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
Logger.Output(LogType.LogTypeName.INFO, "设置浏览器可以打开不安全链接");
}
}