删除 src/main/java/com/bonus/autoweb/base/AutoMain.java
This commit is contained in:
parent
82eae41a01
commit
b3d661ccaf
|
|
@ -1,392 +0,0 @@
|
|||
package com.bonus.autoweb.base;
|
||||
|
||||
import org.openqa.selenium.By;
|
||||
import org.openqa.selenium.JavascriptExecutor;
|
||||
import org.openqa.selenium.WebDriver;
|
||||
import org.openqa.selenium.WebElement;
|
||||
import org.openqa.selenium.chrome.ChromeDriver;
|
||||
import org.openqa.selenium.chrome.ChromeOptions;
|
||||
import org.openqa.selenium.interactions.Actions;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
|
||||
/**
|
||||
* 自动化操作
|
||||
*
|
||||
* @author 吕继龙
|
||||
*/
|
||||
public class AutoMain {
|
||||
|
||||
Logger log = LoggerFactory.getLogger(AutoMain.class);
|
||||
//浏览器驱动对象
|
||||
private WebDriver webDriver;
|
||||
|
||||
public WebDriver getWebDriver() {
|
||||
return webDriver;
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化驱动
|
||||
*/
|
||||
public void initDrive(int type) {
|
||||
// chromedriver服务地址
|
||||
System.setProperty(DataConfig.DRIVE_NAME, DataConfig.drivePath);
|
||||
ChromeOptions option = new ChromeOptions();
|
||||
//添加浏览器地址 个人本地-同砀山
|
||||
option.setBinary("C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe");
|
||||
|
||||
option.addArguments("--start-maximized");
|
||||
option.addArguments("--force-device-scale-factor=0.75");
|
||||
option.addArguments("disable-infobars");
|
||||
// if(type != 7) {
|
||||
// //隐藏浏览器
|
||||
// option.addArguments("--headless");
|
||||
// }
|
||||
webDriver = new ChromeDriver(option);
|
||||
}
|
||||
|
||||
/**
|
||||
* 开始工作
|
||||
*/
|
||||
public void startAuto(String userName, String pass) throws Exception {
|
||||
openWeb();
|
||||
login(userName, pass);
|
||||
openDuty();
|
||||
}
|
||||
public void startYuJingAuto(String userName, String pass) throws Exception {
|
||||
openWeb();
|
||||
log.info("打开网站成功");
|
||||
login(userName, pass);
|
||||
log.info("登录成功");
|
||||
openYuJing();
|
||||
}
|
||||
public void startYuJingActionAuto(String userName, String pass) throws Exception {
|
||||
openWeb();
|
||||
log.info("打开网站成功");
|
||||
login(userName, pass);
|
||||
log.info("登录成功");
|
||||
openYuJingAction();
|
||||
}
|
||||
public void startCaoLianAuto(String userName, String pass) throws Exception {
|
||||
openWeb();
|
||||
login(userName, pass);
|
||||
openCheckTheDrills();
|
||||
}
|
||||
|
||||
/**
|
||||
* 打开网站
|
||||
*/
|
||||
public void openWeb() throws InterruptedException {
|
||||
//第一步打开指定网站
|
||||
webDriver.get(DataConfig.URL);
|
||||
log.info("打开宿州应急指挥中心网站------------");
|
||||
Thread.sleep(2000);
|
||||
}
|
||||
|
||||
/**
|
||||
* 打开网站并登录系统
|
||||
*/
|
||||
private void login(String userName, String pass) throws Exception {
|
||||
//******************************************************************
|
||||
/**
|
||||
* 第二步 用户登录
|
||||
*/
|
||||
log.info("使用账号:" + userName + ",进行登录---------");
|
||||
//输入用户名
|
||||
webDriver.findElement(By.id("username")).sendKeys(userName);
|
||||
log.info("输入用户名------------");
|
||||
Thread.sleep(300);
|
||||
|
||||
//输入密码
|
||||
webDriver.findElement(By.id("password")).sendKeys(pass);
|
||||
log.info("输入密码------------");
|
||||
Thread.sleep(300);
|
||||
|
||||
//系统登录
|
||||
webDriver.findElement(By.id("submi")).click();
|
||||
log.info("系统登录------------");
|
||||
Thread.sleep(800);
|
||||
isAlert();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 判断是否有弹框,隐藏弹框
|
||||
*/
|
||||
private void isAlert() {
|
||||
try {
|
||||
WebElement alert = webDriver.findElement(By.xpath("/html/body/div[5]"));
|
||||
JavascriptExecutor js = (JavascriptExecutor) webDriver;
|
||||
js.executeScript("arguments[0].setAttribute(arguments[1],arguments[2])", alert, "style", "display:none");
|
||||
Thread.sleep(3000);
|
||||
|
||||
WebElement alert1 = webDriver.findElement(By.xpath("/html/body/div[2]"));
|
||||
JavascriptExecutor js1 = (JavascriptExecutor) webDriver;
|
||||
js1.executeScript("arguments[0].setAttribute(arguments[1],arguments[2])", alert1, "style", "display:none");
|
||||
Thread.sleep(3000);
|
||||
}catch (Exception e){
|
||||
log.error("隐藏出错或者没有弹窗");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 打开值班管理页面,并定位到值班管理的iframe
|
||||
*/
|
||||
private void openDuty() throws InterruptedException {
|
||||
Thread.sleep(5000);
|
||||
//
|
||||
// try {
|
||||
// WebElement alertDiv = webDriver.findElement(By.xpath("/html/body/div[2]/div/div[1]/div/div[1]/div[1]/span"));
|
||||
// if(alertDiv.getText()) {
|
||||
//
|
||||
// }
|
||||
// }catch (Exception e){
|
||||
//
|
||||
// }
|
||||
|
||||
try {
|
||||
webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
Thread.sleep(5000);
|
||||
//执行鼠标悬停动作-管理
|
||||
Actions action = new Actions(webDriver);
|
||||
WebElement wegl = webDriver.findElement(By.xpath("//*[@id=\"app\"]/div/div[1]/div[6]/div/div/div[6]/span/span" +
|
||||
"/div"));
|
||||
action.moveToElement(wegl).build().perform();
|
||||
Thread.sleep(300);
|
||||
|
||||
//获取管理标签中的aria-describedby属性
|
||||
String attributeId = wegl.getAttribute("aria-describedby");
|
||||
log.info("管理标签的ID值为:" + attributeId);
|
||||
Thread.sleep(300);
|
||||
|
||||
|
||||
//执行鼠标悬停动作-常态值班
|
||||
String ctzbXpath = "//*[@id=\"" + attributeId + "\"]/div/div[1]/div[2]/div[4]";
|
||||
WebElement wectzb = webDriver.findElement(By.xpath(ctzbXpath));
|
||||
action.moveToElement(wectzb).build().perform();
|
||||
Thread.sleep(300);
|
||||
|
||||
|
||||
//打开值班页面
|
||||
//*[@id=\"" + attributeId + "\"]/div/div[2]/div[2]/div[1]/div[2]
|
||||
String zbglXpath = "//*[@id=\"" + attributeId + "\"]/div/div[2]/div[2]/div/div[1]";
|
||||
webDriver.findElement(By.xpath(zbglXpath)).click();
|
||||
log.info("打开值班管理页面------------");
|
||||
Thread.sleep(800);
|
||||
|
||||
//定位值班管理iframe的标签
|
||||
WebElement dutyIframe = webDriver.findElement(By.id("zbgln"));
|
||||
webDriver.switchTo().frame(dutyIframe);
|
||||
log.info("定位到值班管理iframe-----------");
|
||||
Thread.sleep(3000);
|
||||
|
||||
//将日期改为今天的日期
|
||||
webDriver.findElement(By.xpath("//*[@id=\"app\"]/div/section/main/div/div[1]/div[1]/div[3]/div[1]/div[2]/div/button[2]")).click();
|
||||
log.info("将日期选择回当日----------");
|
||||
Thread.sleep(300);
|
||||
}
|
||||
|
||||
private void openYuJing() throws InterruptedException{
|
||||
try {
|
||||
webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
Thread.sleep(5000);
|
||||
//执行鼠标悬停动作-管理
|
||||
Actions action = new Actions(webDriver);
|
||||
WebElement wegl = webDriver.findElement(By.xpath("//*[@id=\"app\"]/div/div[1]/div[6]/div/div/div[2]/span/span" +
|
||||
"/div"));
|
||||
action.moveToElement(wegl).build().perform();
|
||||
Thread.sleep(300);
|
||||
log.info("执行鼠标悬停动作-管理");
|
||||
//获取管理标签中的aria-describedby属性 el-popover-7909
|
||||
String attributeId = wegl.getAttribute("aria-describedby");
|
||||
log.info("管理标签的ID值为:" + attributeId);
|
||||
Thread.sleep(300);
|
||||
|
||||
|
||||
// //执行鼠标悬停动作-常态值班
|
||||
// String ctzbXpath = "//*[@id=\"" + attributeId + "\"]/div/div[1]/div[2]/div[3]";
|
||||
// WebElement wectzb = webDriver.findElement(By.xpath(ctzbXpath));
|
||||
// action.moveToElement(wectzb).build().perform();
|
||||
// Thread.sleep(300);
|
||||
|
||||
|
||||
//打开预警响应管理页面
|
||||
//*[@id=\"" + attributeId + "\"]/div/div[2]/div[2]/div[1]/div[2]
|
||||
String zbglXpath = "//*[@id=\"" + attributeId + "\"]/div/div/div[2]/div[3]";
|
||||
webDriver.findElement(By.xpath(zbglXpath)).click();
|
||||
log.info("打开预警页面------------");
|
||||
Thread.sleep(800);
|
||||
|
||||
//定位值班管理iframe的标签
|
||||
WebElement dutyIframe = webDriver.findElement(By.id("warningResTicket"));
|
||||
webDriver.switchTo().frame(dutyIframe);
|
||||
log.info("定位到预警响应管理iframe-----------");
|
||||
Thread.sleep(500);
|
||||
}
|
||||
private void openYuJingAction() throws InterruptedException{
|
||||
try {
|
||||
webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
Thread.sleep(5000);
|
||||
//执行鼠标悬停动作-管理
|
||||
Actions action = new Actions(webDriver);
|
||||
WebElement wegl = webDriver.findElement(By.xpath("//*[@id=\"app\"]/div/div[1]/div[6]/div/div/div[2]/span/span" +
|
||||
"/div"));
|
||||
action.moveToElement(wegl).build().perform();
|
||||
Thread.sleep(300);
|
||||
log.info("执行鼠标悬停动作-管理");
|
||||
//获取管理标签中的aria-describedby属性 el-popover-7909
|
||||
String attributeId = wegl.getAttribute("aria-describedby");
|
||||
log.info("管理标签的ID值为:" + attributeId);
|
||||
Thread.sleep(300);
|
||||
|
||||
|
||||
// //执行鼠标悬停动作-预警行动
|
||||
// String ctzbXpath = "//*[@id=\"" + attributeId + "\"]/div/div[1]/div[2]/div[4]";
|
||||
// WebElement wectzb = webDriver.findElement(By.xpath(ctzbXpath));
|
||||
// action.moveToElement(wectzb).build().perform();
|
||||
// Thread.sleep(300);
|
||||
|
||||
|
||||
//打开预警响应管理页面
|
||||
//*[@id=\"" + attributeId + "\"]/div/div[2]/div[2]/div[1]/div[2]
|
||||
String zbglXpath = "//*[@id=\"" + attributeId + "\"]/div/div/div[2]/div[4]";
|
||||
webDriver.findElement(By.xpath(zbglXpath)).click();
|
||||
log.info("打开预警页面------------");
|
||||
Thread.sleep(800);
|
||||
|
||||
//定位值班管理iframe的标签
|
||||
WebElement dutyIframe = webDriver.findElement(By.id("yjczrwgl"));
|
||||
webDriver.switchTo().frame(dutyIframe);
|
||||
log.info("定位到预警响应处置任务管理iframe-----------");
|
||||
Thread.sleep(500);
|
||||
}
|
||||
|
||||
/**
|
||||
* 打开检查操练管理页面,并定位到日常操练的iframe
|
||||
*/
|
||||
private void openCheckTheDrills() throws InterruptedException {
|
||||
try {
|
||||
webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
Thread.sleep(3000);
|
||||
//执行鼠标悬停动作-管理
|
||||
Actions action = new Actions(webDriver);
|
||||
WebElement wegl = webDriver.findElement(By.xpath("//*[@id=\"app\"]/div/div[1]/div[6]/div/div/div[6]/span/span" +
|
||||
"/div"));
|
||||
action.moveToElement(wegl).build().perform();
|
||||
Thread.sleep(300);
|
||||
|
||||
//获取管理标签中的aria-describedby属性
|
||||
String attributeId = wegl.getAttribute("aria-describedby");
|
||||
log.info("管理标签的ID值为:" + attributeId);
|
||||
Thread.sleep(300);
|
||||
|
||||
//执行鼠标悬停动作-检查操练管理
|
||||
String ctzbXpath = "//*[@id=\"" + attributeId + "\"]/div/div[1]/div[2]/div[5]";
|
||||
webDriver.findElement(By.xpath(ctzbXpath)).click();
|
||||
// WebElement wectzb = webDriver.findElement(By.xpath(ctzbXpath));
|
||||
// action.moveToElement(wectzb).build().perform();
|
||||
Thread.sleep(300);
|
||||
|
||||
//打开日常操练页面
|
||||
//*[@id=\"" + attributeId + "\"]/div/div[2]/div[2]/div[1]/div[2]
|
||||
// String zbglXpath = "//*[@id=\"" + attributeId + "\"]/div/div[2]/div[2]/div/div[1]";
|
||||
// webDriver.findElement(By.xpath(zbglXpath)).click();
|
||||
// log.info("打开日常操练页面------------");
|
||||
// /* TODO 800 --> 1500 */
|
||||
Thread.sleep(1500);
|
||||
|
||||
//定位日常操练iframe的标签
|
||||
WebElement dutyIframe = webDriver.findElement(By.id("rccl"));
|
||||
webDriver.switchTo().frame(dutyIframe);
|
||||
log.info("定位到日常操练iframe-----------");
|
||||
Thread.sleep(8000);
|
||||
|
||||
//点击抽查按钮
|
||||
webDriver.findElement(By.xpath("/html/body/div/section/div[1]/div[1]/div/div/div/div[3]")).click();
|
||||
|
||||
//定位日常操练iframe的标签
|
||||
WebElement insideIframe = webDriver.findElement(By.xpath("/html/body/div/section/div[1]/div[2]/div[1]/iframe"));
|
||||
webDriver.switchTo().frame(insideIframe);
|
||||
log.info("定位到日常操练内部iframe-----------");
|
||||
Thread.sleep(3000);
|
||||
}
|
||||
|
||||
/**
|
||||
* 关闭浏览器驱动
|
||||
*/
|
||||
public void closeDrive() {
|
||||
log.info("工作完成,退出浏览器");
|
||||
webDriver.quit();
|
||||
}
|
||||
|
||||
public void startAddExercisePlan(String userName, String pass) throws Exception {
|
||||
openWeb();
|
||||
login(userName, pass);
|
||||
startAddExercisePlanAuto();
|
||||
}
|
||||
|
||||
private void startAddExercisePlanAuto() throws InterruptedException {
|
||||
try {
|
||||
webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
Thread.sleep(5000);
|
||||
//执行鼠标悬停动作-管理
|
||||
Actions action = new Actions(webDriver);
|
||||
WebElement wegl = webDriver.findElement(By.xpath("//*[@id=\"app\"]/div/div[1]/div[6]/div/div/div[6]/span/span" +
|
||||
"/div"));
|
||||
action.moveToElement(wegl).build().perform();
|
||||
Thread.sleep(300);
|
||||
|
||||
//获取管理标签中的aria-describedby属性
|
||||
String attributeId = wegl.getAttribute("aria-describedby");
|
||||
log.info("管理标签的ID值为:" + attributeId);
|
||||
Thread.sleep(300);
|
||||
|
||||
//执行鼠标悬停动作-检查操练管理
|
||||
String ctzbXpath = "//*[@id=\"" + attributeId + "\"]/div/div[1]/div[2]/div[5]";
|
||||
webDriver.findElement(By.xpath(ctzbXpath)).click();
|
||||
// WebElement wectzb =
|
||||
// action.moveToElement(wectzb).build().perform();
|
||||
Thread.sleep(300);
|
||||
|
||||
// //打开检查计划页面
|
||||
// //*[@id=\"" + attributeId + "\"]/div/div[2]/div[2]/div[1]/div[2]
|
||||
// String zbglXpath = "//*[@id=\"" + attributeId + "\"]/div/div[2]/div[2]/div/div[1]";
|
||||
// webDriver.findElement(By.xpath(zbglXpath)).click();
|
||||
// log.info("打开检查计划页面------------");
|
||||
// /* TODO 800 --> 1500 */
|
||||
Thread.sleep(1500);
|
||||
|
||||
//定位检查计划iframe的标签
|
||||
WebElement dutyIframe = webDriver.findElement(By.id("rccl"));
|
||||
webDriver.switchTo().frame(dutyIframe);
|
||||
log.info("定位到检查计划iframe-----------");
|
||||
Thread.sleep(500);
|
||||
//点击抽查按钮
|
||||
webDriver.findElement(By.xpath("/html/body/div/section/div[1]/div[1]/div/div/div/div[3]")).click();
|
||||
|
||||
// //定位日常操练iframe的标签
|
||||
// WebElement insideIframe = webDriver.findElement(By.xpath("/html/body/div/section/div[1]/div[2]/div[1]/iframe"));
|
||||
// webDriver.switchTo().frame(insideIframe);
|
||||
// log.info("定位到日常操练内部iframe-----------");
|
||||
// Thread.sleep(3000);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue