selenium界面测试常用模式

import org.openqa.selenium.*;

import org.openqa.selenium.chrome.ChromeDriver;

public class Main {

    private static WebDriver driver;

    public static void main(String[] args) throws Exception {

        //引用火狐浏览器驱动

        System.setProperty("webdriver.chrome.driver", "C:\\selenium\\chromedriver.exe");

        driver = new ChromeDriver();

        driver.manage().window().maximize();

        //以下为Katalon Recorder录制后的脚本

        driver.get("https://www.baidu.com/index.php?tn=monline_3_dg");

        Thread.sleep(2000);

        driver.findElement(By.id("kw")).click();

        driver.findElement(By.id("kw")).clear();

        driver.findElement(By.id("kw")).sendKeys("掘金网");

        Thread.sleep(100);

        driver.findElement(By.id("su")).click();

        Thread.sleep(1000);

        driver.findElement(By.xpath("//div[@id='container']/div[2]/div")).click();

        driver.findElement(By.linkText("掘金- juejin.im - 一个帮助开发者成长的社区")).click();

        Thread.sleep(3000);

        // ERROR: Caught exception [ERROR: Unsupported command [selectWindow | win_ser_1 | ]]

        driver.findElement(By.xpath("//div[@id='juejin']/div[2]/div/header/div/nav/ul/li[2]/form/input")).click();

        driver.findElement(By.xpath("//div[@id='juejin']/div[2]/div/header/div/nav/ul/li[2]/form/input")).click();

        driver.findElement(By.xpath("//div[@id='juejin']/div[2]/div/header/div/nav/ul/li[2]/form/input")).clear();

        driver.findElement(By.xpath("//div[@id='juejin']/div[2]/div/header/div/nav/ul/li[2]/form/input")).sendKeys("我是如何重构整个研发项目,促进自动化运维DevOps的落地?");

        driver.findElement(By.xpath("//div[@id='juejin']/div[2]/div/header/div/nav/ul/li[2]/form/input")).sendKeys(Keys.ENTER);

        Thread.sleep(2000);

        driver.findElement(By.linkText("我是如何重构整个研发项目,促进自动化运维DevOps的落地?")).click();

    }

}


import org.openqa.selenium.*;

import org.openqa.selenium.chrome.ChromeDriver;

import webfunction.*;

import java.util.Scanner;

public class Main {

    private static WebDriver driver;

    private static String baseUrl;

    private boolean acceptNextAlert = true;

    /**

    * 各个环境

    * */

    private static String[] environments = {"环境1", "环境2", "环境3", "环境4", "环境5", "环境6"};

    /**

    * 错误日志

    * */

    private static StringBuffer verificationErrors = new StringBuffer();

    /**

    * 是否处于debug模式

    */

    private static boolean debug = false;

    /**

    * -1为手动模式,否则为指定数字

    * */

    private static String environment = "-1";

    /**

    * -1为手动模式,否则为指定数字

    * */

    private static String methods = "-1";

    public static void main(String[] args) throws Exception {

        //引用火狐浏览器驱动

        System.setProperty("webdriver.chrome.driver", "C:\\selenium\\chromedriver.exe");

        //定义用户名密码

        String uname, upw;

        Scanner sc = new Scanner(System.in);

        System.out.println("请选择环境");

        for (int i = 0; i < environments.length; i++) {

            System.out.println(i + ":" + environments[i]);

        }

        if ("-1".equals(environment)) {

            environment = sc.next();

        }

        System.out.println("请输入需要测试的功能,英文逗号隔开");

        if ("-1".equals(methods)) {

            methods = sc.next();

        }

        driver = new ChromeDriver();

        System.out.println("您选择的是" + environments[Integer.valueOf(environment)]);

        switch (environment) {

            case "0":

                baseUrl = "http://*.*.*.*/";

                uname = "admin";

                upw = "admin";

                testManage(baseUrl, uname, upw, methods, driver);

                break;

            case "1":

                baseUrl = "http://*.*.*.*/";

                uname = "admin";

                upw = "admin";

                testManage(baseUrl, uname, upw, methods, driver);

                break;

            case "2":

                //等等等……

                break;

        }

    }

    private static void testManage(String url, String uname, String upw, String methods, WebDriver driver) throws InterruptedException {

        //先登录管理端

        WebLogin.webLogin(driver, url, uname, upw);

        //然后测试所有模块

        String[] strArray = null;

        strArray = methods.split(",");

        for (int i = 0; i < strArray.length; i++) {

            switch (strArray[i]) {

                case "0":

                    try {

                        // 系统基础管理 - 用户管理 - 新增用户

                        WebSystemManage.addnewUser(driver, url);   

                    } catch (Exception e) {

                        verificationErrors.append("系统基础管理 - 用户管理 - 新增用户  出错");

                        log(e);

                    }

                    break;

                case "1":

                    try {

                        // 系统基础管理 - 用户管理 - 编辑用户

                        WebSystemManage.editUser(driver, url);     

                    } catch (Exception e) {

                        System.out.println("系统基础管理 - 用户管理 - 编辑用户  出错");

                        log(e);

                    }

                    break;

                default:

                    break;

            }

        }

        report(verificationErrors);

    }

    private static void report(StringBuffer verificationErrors) {

        //发送邮件

    }

    /**

    * 根据debug变量是否输出日志

    * @param e

    */

    private static void log(Exception e) {

        if (debug) {

            e.printStackTrace();

        }

    }

    private static boolean isElementPresent(By by) {

        try {

            driver.findElement(by);

            return true;

        } catch (NoSuchElementException e) {

            return false;

        }

    }

    private static boolean isAlertPresent() {

        try {

            driver.switchTo().alert();

            return true;

        } catch (NoAlertPresentException e) {

            return false;

        }

    }

    private static String closeAlertAndGetItsText() {

        try {

            Alert alert = driver.switchTo().alert();

            String alertText = alert.getText();

            if (acceptNextAlert) {

                alert.accept();

            } else {

                alert.dismiss();

            }

            return alertText;

        } finally {

            acceptNextAlert = true;

        }

    }

}

参考:

https://juejin.im/post/5b25e8cae51d4558c4720845#heading-26

你可能感兴趣的:(selenium界面测试常用模式)