Selenium

  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 }
View Code
原文地址:https://www.cnblogs.com/JulyLeo/p/3178343.html