zoukankan      html  css  js  c++  java
  • Java+selenium 第一个KeyWordsOfWeb

    package com.dn.UI;
    
    import java.io.File;
    import java.io.IOException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.Set;
    import java.util.concurrent.TimeUnit;
    
    import org.apache.commons.io.FileUtils;
    import org.openqa.selenium.By;
    import org.openqa.selenium.JavascriptExecutor;
    import org.openqa.selenium.OutputType;
    import org.openqa.selenium.TakesScreenshot;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.WebElement;
    import org.openqa.selenium.interactions.Actions;
    import org.openqa.selenium.remote.RemoteWebDriver;
    import org.openqa.selenium.support.ui.ExpectedCondition;
    import org.openqa.selenium.support.ui.ExpectedConditions;
    import org.openqa.selenium.support.ui.Select;
    import org.openqa.selenium.support.ui.WebDriverWait;
    
    import com.google.common.io.Files;
    
    public class KeyWordsOfWeb {
    
        public WebDriver driver = null;
    
        public void openBrowser(String driverpath) {
            try {
                switch (driverpath) {
                case ("chrome"):
                    GoogleDriver google = new GoogleDriver("tools/chromedriver.exe");
                    driver = google.getdriver();
                    break;
    
                case ("ff"):
                    FFDriver ff = new FFDriver("", "tools/geckodriver.exe");
                    driver = ff.getdriver();
                    break;
    
                case ("ie"):
                    IEDriver ie = new IEDriver("tools/iedriver.exe");
                    driver = ie.getdriver();
                    break;
                default:
                    GoogleDriver google1 = new GoogleDriver("tools/chromedriver.exe");
                    driver = google1.getdriver();
                    break;
                }
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                System.out.print("浏览器关键字出错");
            }
        }
    
        public void getUrl(String url) {
            try {
                driver.get(url);
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                System.out.print("url打开失败");
            }
        }
    
        // 显示等待 ,较常用 1>自定义显示等待的条件,直到条件成立
        public void explicityWait(String xpath) {
            WebDriverWait wait = new WebDriverWait(driver, 10);
            wait.until(new ExpectedCondition<WebElement>() {
                public WebElement apply(WebDriver d) {
                    return d.findElement(By.xpath(xpath));
                }
            });
            // 显示等待2>显示等待,用selenium本事自带的功能
            wait.until(ExpectedConditions.elementToBeClickable(driver.findElement(By.xpath(xpath))));
        }
    
        public void explicityWaitOfTitle() {
            WebDriverWait wait = new WebDriverWait(driver, 10);
            wait.until(new ExpectedCondition<Boolean>() {
                public Boolean apply(WebDriver d) {
                    return d.getTitle().toLowerCase().startsWith("Cheese");
                }
            });
        }
    
        // 隐式等待
        public void implicityWait() {
            driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        }
    
        // 强制等待 Thread.sleep(1000);
        public void halt(long millis) {
            try {
                Thread.sleep(millis);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    
        public void inputByXpathAndSubmit(String xpath, String key) {
            try {
                driver.findElement(By.xpath(xpath)).sendKeys(key);
                driver.findElement(By.xpath(xpath)).submit();
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                System.out.print("定位元素出错");
            }
        }
    
        public void clickByXpath(String xpath) {
            try {
                driver.findElement(By.xpath(xpath)).click();
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                System.out.print("点击元素失败");
            }
        }
    
        public void setWindow() {
            try {
                driver.manage().window().maximize();
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                System.out.print("maximize 出错。");
    
            }
    
        }
    
        // 选择句柄
        public void switchWindow(String targtext) {
            String s = null;
            Set<String> handls = driver.getWindowHandles();
            for (String t : handls) {
                if (driver.switchTo().window(t).getTitle().equals(targtext)) {
                    s = t;
                }
            }
            try {
                driver.switchTo().window(s);
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                System.out.print("switchtWindow 出错。");
            }
        }
    
        // 悬浮
        public void mouseOn(String xpath) {
            Actions action = new Actions(driver);
            try {
                action.moveToElement(driver.findElement(By.xpath(xpath))).perform();
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                System.out.print("mouseOn 出错。");
            }
        }
    
        // 切换iframe
        public void selectIframe(String xpath) {
            try {
                driver.switchTo().frame(driver.findElement(By.xpath(xpath)));
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                System.out.print("selectIframe 出错。");
    
            }
        }
    
        public void outIframe() {
            try {
                driver.switchTo().defaultContent();
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                System.out.print("outIframe 出错。");
    
            }
        }
    
        // 文本校验断言
        public void assertByText(String xpath, String judge) {
            String result;
            try {
                explicityWait(xpath);
                result = driver.findElement(By.xpath(xpath)).getText();
                System.out.println(driver.findElement(By.xpath(xpath)));
                System.out.println(result);
                if (result.equals(judge))
                    System.out.println("pass");
                else
                    System.out.println("fail");
    
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    
    //    public void assertByText(String xpath , String text) {
    //        try {
    //            String s = driver.findElement(By.xpath(xpath)).getText();
    //            System.out.println(driver.findElement(By.xpath(xpath)));
    //            System.out.print(s);
    //            if(s.equals(text))
    //                System.out.print("pass");
    //            else
    //                System.out.print("fail");
    //        } catch (Exception e) {
    //            // TODO Auto-generated catch block
    //            e.printStackTrace();
    //        }
    //    }srcshot/
    
        // 截图做断言
        public void screenShot(String srcshotname) {
            Date date = new Date();
            SimpleDateFormat sdf = new SimpleDateFormat("yyyymmddHHmmss");
            String creatdate = sdf.format(date);
            String imgname = "SCRshot/" + creatdate + srcshotname + ".png";
            File img = ((RemoteWebDriver) driver).getScreenshotAs(OutputType.FILE);
            try {
                Files.copy(img, new File(imgname));
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                System.out.print("screenShot 出错。");
            }
        }
    
        public void saveScrShot() {
            Date date = new Date();
            SimpleDateFormat sdf = new SimpleDateFormat("yyyymmddHHmmss");
            String creatdate = sdf.format(date);
            String imgname = "SCRshot/" + creatdate + ".png";
    
            File srcfile = new File(imgname);
            File tmp = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
            try {
                FileUtils.copyFile(tmp, srcfile);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                System.out.print("saveScrShot 出错。");
            }
        }
    
        public void sendFfile(String xpath, String filepath) {
    
            try {
                driver.findElement(By.xpath(xpath)).sendKeys(filepath);
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                System.out.print("sendFfile 出错。");
            }
        }
        
        public void selectByText(String xpath, String text) {
            Select sele =  new Select(driver.findElement(By.xpath(xpath)));
            try {
                sele.selectByVisibleText(text);
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                System.out.print("selectByText 出错。");
            }
        }
        //加turn  是有返回值的
        public void getJS(String text) {
            String t = "";
            JavascriptExecutor js = (JavascriptExecutor)driver;
            
            try {
                t = js.executeScript(text).toString();
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                System.out.print("getJS 出错。");
            }
        }
        
        public void runJs(String text) {
            JavascriptExecutor js = (JavascriptExecutor)driver;
            try {
                //executeScript  执行js
                js.executeScript(text);
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                System.out.print("runJs 出错。");
            }
        }
        
        public void srcoll() {
            JavascriptExecutor js = (JavascriptExecutor)driver;
            try {
                js.executeScript("window.scrollTo(100,document.body.scrollHeight)" );
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    
        public void getTitle() {
    
            try {
                System.out.print(driver.getTitle());
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                System.out.print("gettitle 出错。");
            }
        }
    
        public void closeBrowser() {
            try {
                driver.quit();
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                System.out.print("关闭浏览器出错");
            }
        }
    
    }
  • 相关阅读:
    C#之Raw Socket实现网络封包监视
    es6Promise及小程序Promise用法
    在微信小程序的JS脚本中使用Promise来优化函数处理
    小程序踩过的一个小坑---解析二维码decodeURIComponent() url解码
    js json转url参数
    微信小程序-实现分享(带参数)
    php中的匿名函数和闭包(closure)
    微信小程序之回调函数
    php AES cbc模式 pkcs7 128位加密解密(微信小程序)
    微信小程序,开发中几个重要的知识点(加密解密,转发,进入场景,session_key)
  • 原文地址:https://www.cnblogs.com/lemom/p/11484829.html
Copyright © 2011-2022 走看看