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