1 public class Base {
2 SimpleDateFormat formatterTime = new SimpleDateFormat("yyyyMMdd_hhmmssa");
3 SimpleDateFormat formatterDate = new SimpleDateFormat("yyyyMMdd");
4
5 private Calendar now() {
6 Calendar now = Calendar.getInstance();
7 return now;
8 }
9
10 public static Map<String, String> initialProperties(String properityName) {
11 String key = "";
12 String value = "";
13 Map<String, String> map = null;
14 ResourceBundle bound = PropertyResourceBundle.getBundle(properityName, Locale.ENGLISH);
15 Enumeration<String> enumeration = bound.getKeys();
16 if (enumeration != null) {
17 map = new HashMap<String, String>();
18 while (enumeration.hasMoreElements()) {
19 key = (String) enumeration.nextElement();
20 value = bound.getString(key);
21 map.put(key, value);
22 }
23 }
24 return map;
25 }
26
27 public static WebDriver setUp_IEDriver() throws Exception {
28 System.setProperty("webdriver.ie.driver", "./IEDriverServer.exe");
29 DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();
30 capabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);
31 WebDriver driver = new InternetExplorerDriver(capabilities);
32 driver.manage().window().maximize();
33 return driver;
34 }
35
36 public WebDriver setUp_ChromeDriver(){
37 System.setProperty("webdriver.chrome.driver", "./chromedriver.exe");
38 WebDriver driver = new ChromeDriver();
39 driver.manage().window().maximize();
40 return driver;
41 }
42
43 public WebDriver setUp_FirefoxDriver(){
44 System.setProperty("webdriver.ie.driver", "C:/Program Files/Mozilla Firefox");
45 WebDriver driver = new FirefoxDriver();
46 return driver;
47 }
48
49 public static boolean isElementPresent(WebDriver driver, By by) {
50 try {
51 driver.findElement(by);
52 return true;
53 } catch (NoSuchElementException e) {
54 e.printStackTrace();
55 return false;
56 }
57 }
58
59 public void screenshot(WebDriver driver, String path){
60 File folder = new File(path);
61 try {
62 if(!folder.exists()){
63 folder.mkdirs();
64 }
65 Dimension window_size = driver.manage().window().getSize();
66 // BufferedImage image = new Robot().createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()));
67 BufferedImage image = new Robot().createScreenCapture(new Rectangle(window_size.getWidth(), window_size.getHeight()));
68 String screenshotName = path+formatterTime.format(now().getTime())+".png";
69 ImageIO.write(image, "png", new File(screenshotName));
70 System.out.println("Screenshot "+screenshotName+" has been saved to " + path);
71 } catch (HeadlessException e) {
72 e.printStackTrace();
73 } catch (AWTException e) {
74 e.printStackTrace();
75 } catch (IOException e) {
76 e.printStackTrace();
77 }
78 }
79
80 public void pageshot(WebDriver driver, String path){
81 File folder = new File(path);
82 try {
83 if(!folder.exists()){
84 folder.mkdirs();
85 }
86 String screenshotName = path+formatterTime.format(now().getTime())+".png";
87 File screenshot = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
88 FileUtils.copyFile(screenshot, new File(screenshotName));
89 System.out.println("Screenshot "+screenshotName+" has been saved to " + path);
90 } catch (HeadlessException e) {
91 e.printStackTrace();
92 } catch (IOException e) {
93 e.printStackTrace();
94 }
95 }
96
97 public boolean windowStatus(WebDriver driver, final String window_status){
98 WebDriverWait wait = new WebDriverWait(driver, 120);
99 boolean windowStatus = wait.until(new ExpectedCondition<Boolean>(){
100 public Boolean apply(WebDriver driver){
101 JavascriptExecutor js = (JavascriptExecutor) driver;
102 return js.executeScript("return window.status").toString().trim().equals(window_status);
103 }});
104 return windowStatus;
105 }
106
107 public void waitForElementLoadByXpath(WebDriver driver, final String xpath){
108 WebDriverWait wait = new WebDriverWait(driver, 300);
109 wait.until(new ExpectedCondition<WebElement>(){
110 public WebElement apply(WebDriver driver) {
111 WebElement element = driver.findElement(By.xpath(xpath));
112 return element;
113 }
114 });
115 }
116
117 public void waitForPageLoad(WebDriver driver){
118 WebDriverWait wait = new WebDriverWait(driver, 300);
119 wait.until(new ExpectedCondition<Boolean>(){
120 public Boolean apply(WebDriver driver) {
121 return ((JavascriptExecutor)driver).executeScript("return document.readyState").toString().equalsIgnoreCase("complete");
122 }
123 });
124 }
125
126 public static void waitForDivLoad(WebDriver driver) {
127 WebDriverWait wait = new WebDriverWait(driver, 30);
128 wait.until(new ExpectedCondition<Boolean>() {
129 public Boolean apply(WebDriver driver) {
130 return ((JavascriptExecutor) driver).executeScript("return document.getElementById('ctl00_ContentPlaceHolder1_ClientProgress').style.display").toString().equalsIgnoreCase("block");
131 }
132 });
133 }
134 }