删除 src/main/java/com/bonus/autoweb/base/DutyLogIOp.java

This commit is contained in:
tqzhang 2024-05-07 16:49:26 +08:00
parent 81f95e8bb5
commit a0faa12641
1 changed files with 0 additions and 404 deletions

View File

@ -1,404 +0,0 @@
package com.bonus.autoweb.base;
import com.bonus.autoweb.DateTimeUtils;
import com.bonus.autoweb.UI.entity.LogBean;
import com.bonus.autoweb.UI.frame.StringHelper;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.json.JettisonMappedXmlDriver;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.nio.charset.Charset;
import java.text.ParseException;
/**
* 操作值班日志类
*/
public class DutyLogIOp {
private Logger log = LoggerFactory.getLogger(DutyLogIOp.class);
private WebDriver webDriver;
public DutyLogIOp(WebDriver webDriver) {
this.webDriver = webDriver;
}
/**
* 打开日志新增页面
*
* @param type 1 2晚
*/
public void openDutyLog(int type) throws Exception {
if (type == 1) {
//早上填写前一天的日志,将标签改为前一天
changeDay();
}
Thread.sleep(5000);
//定位值班日志并点击
webDriver.findElement(By.id("tab-5")).click();
log.info("定位值班日志并点击----------");
Thread.sleep(5000);
// /html/body/div[2] 弹窗 您没有填写值班日志的排班班次
//定位写日志标签打开日志页面
webDriver.findElement(By.xpath("//*[@id=\"pane-5\"]/div/div[2]/div[2]/button")).click();
log.info("定位写日志标签,打开日志页面----------");
Thread.sleep(1500);
//退出当前iframe,进入到日报编辑iframe
webDriver.switchTo().defaultContent();
log.info("退出当前iframe----------");
Thread.sleep(3000);
//定位日志编辑iframe的标签
WebElement dutyEditIframe = webDriver.findElement(By.id("add-local-zbrzbz"));
webDriver.switchTo().frame(dutyEditIframe);
log.info("定位日志编辑iframe的标签----------");
Thread.sleep(3000);
dutyLogContent();
if (type == 1) {
Thread.sleep(2000);
//昨天的日志填写完毕之后将日期改为今天
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(500);
}
}
public void changeDay() throws Exception {
Thread.sleep(1000);
//判断当前日期是不是每月第一天的日期,true
boolean tf = false;
int tr = 1;
int td = 1;
String xpath;
if (!DateTimeUtils.isOneDay()) {
//不是本月第一天
String currentDay = DateTimeUtils.getCurrentDay();
log.info("currentDay:" + currentDay);
int weekNum = DateTimeUtils.getWeekNum(currentDay);
log.info("weekNum:" + weekNum);
int dayNum = DateTimeUtils.getWeekOfDate(currentDay);
log.info("dayNum:" + dayNum);
/*if (dayNum == 1) {
tr = weekNum - 1;
td = 7;
} else {
tr = weekNum;
td = dayNum - 1;
}*/
if (dayNum == 1) {
if (DateTimeUtils.getMonthOneDayIs0()) {//第一天是0
tr = weekNum;
} else {
tr = weekNum - 1;
if (weekNum == 1) {
tr = 5;
}
}
td = 7;
} else {
if (DateTimeUtils.getMonthOneDayIs0()) {//第一天是0
tr = weekNum + 1;
} else {
tr = weekNum;
}
td = dayNum - 1;
}
log.info("标签位置tr:" + tr + "td:" + td);
xpath = "//*[@id=\"app\"]/div/section/main/div/div[1]/div[1]/div[3]/div[2]/table/tbody/tr[" + tr + "]" + "/td[" + td + "]/div";
} else {
//点击上月按钮切换至上月
webDriver.findElement(By.xpath("//*[@id=\"app\"]/div/section/main/div/div[1]/div[1]/div[3]/div[1]/div[2]/div/button[1]")).click();
log.info("点击上月按钮,切换至上月----------");
Thread.sleep(500);
//获取上月最后一天日期
String mothDay = DateTimeUtils.getBeforeLastMonthdate();
//判断上个月最后一天的位置
tr = DateTimeUtils.getWeekNum(mothDay);
td = DateTimeUtils.getWeekOfDate(mothDay);
xpath = "//*[@id=\"app\"]/div/section/main/div/div[1]/div[1]/div[3]/div[2]/table/tbody/tr[" + tr + "]" + "/td[" + td + "]/div";
// String dayNum = mothDay.substring(8, 10);
// WebElement spanElement = webDriver.findElement(By.xpath("//*[@id=\"app\"]/div/section/main/div/div[1]/div[1]/div[3]/div[2]/table/tbody/tr[" + tr + "]" + "/td[" + td + "]/div/div/div[1]/span"));
// if (dayNum.equals(spanElement.getText())) {
// xpath = "//*[@id=\"app\"]/div/section/main/div/div[1]/div[1]/div[3]/div[2]/table/tbody/tr[" + (tr + 1) + "]" + "/td[" + td + "]/div";
// }
}
//选择前一天的日期
log.info("前一天的标签:" + xpath);
webDriver.findElement(By.xpath(xpath)).click();
log.info("选择前一天的日期----------");
Thread.sleep(500);
}
/**
* 内容填写
*/
private void dutyLogContent() throws InterruptedException {
//值班时间
// /html/body/div[3]/div/div[2]/div/form/div[1]/div/div/div[1]/div/div/div/div
webDriver.findElement(By.xpath("/html/body/div[3]/div/div[2]/div/form/div[1]/div/div/div[1]/div/div/div/div[1]")).click();
log.info("值班时间----------");
Thread.sleep(500);
webDriver.findElement(By.xpath("/html/body/div[4]/div[1]/div[1]/ul/li")).click();
log.info("值班时间----------");
Thread.sleep(500);
// 反序列化--> 解决乱码问题
File file = new File(DataConfig.filePath + "\\log.xml");
InputStreamReader in = null;
String xml = null;
try {
//主要就是这里的设置
in = new InputStreamReader(new FileInputStream(file), Charset.forName("gbk"));
StringBuffer sb = new StringBuffer();
char[] array = new char[1024];
int length = -1;
while ((length = in.read(array)) != -1) {
sb.append(array, 0, length);
}
in.close();
xml = sb.toString().trim();
System.out.println(xml);
} catch (Exception e) {
// TODO: handle exception
}
XStream xstream = new XStream(new JettisonMappedXmlDriver());
xstream.alias("log", LogBean.class);
LogBean bean = (LogBean) xstream.fromXML(xml);
// //输入天气
// String tq = bean.getWeather();
//// /html/body/div[3]/div/div[2]/div/form/div[3]/div/div/div[3]/div/div/div[1]/input
// WebElement weatherElement = webDriver.findElement(By.xpath("/html/body/div[3]/div/div[2]/div/form/div[3]/div/div/div[5]/div/div/div/input"));
// if (StringHelper.isEmptyAndNull(weatherElement.getText())){
// weatherElement.clear();
// weatherElement.sendKeys(tq);
// log.info("输入天气----------");
// }
// Thread.sleep(500);
//
// //输入最低气温
// String zdqw = bean.getMin_temperature();
//// /html/body/div[3]/div/div[2]/div/form/div[3]/div/div/div[4]/div/div/div[1]/input
// WebElement minTemperatureElement = webDriver.findElement(By.xpath("/html/body/div[3]/div/div[2]/div/form/div[3]/div/div/div[7]/div/div/div/input"));
// if (StringHelper.isEmptyAndNull(minTemperatureElement.getText())){
// minTemperatureElement.clear();
// minTemperatureElement.sendKeys(zdqw);
// log.info("输入最低气温----------");
// }
// Thread.sleep(500);
//
// //输入最高气温
// String zgqw = bean.getMax_temperature();
//// /html/body/div[3]/div/div[2]/div/form/div[3]/div/div/div[4]/div/div/div[1]/input
// WebElement maxTemperatureElement = webDriver.findElement(By.xpath("/html/body/div[3]/div/div[2]/div/form/div[3]/div/div/div[9]/div/div/div/input"));
// if (StringHelper.isEmptyAndNull(maxTemperatureElement.getText())){
// maxTemperatureElement.clear();
// maxTemperatureElement.sendKeys(zgqw);
// log.info("输入最高气温----------");
// }
// Thread.sleep(500);
//事件监测 标题
String sjjc_title = bean.getEvent_detection_title();
// /html/body/div[3]/div/div[2]/div/form/div[4]/table/tr[2]/td/table[1]/tr[1]/td/div[3]/div/div[1]/textarea
webDriver.findElement(By.xpath("/html/body/div[3]/div/div[2]/div/form/div[4]/table/tr[2]/td/table[1]/tr[1]/td/div[3]/div/div/textarea")).sendKeys(sjjc_title);
log.info("事件监测 标题----------");
Thread.sleep(1000);
//事件监测 内容
String sjjc_content = bean.getEvent_detection_content();
webDriver.findElement(By.xpath("/html/body/div[3]/div/div[2]/div/form/div[4]/table/tr[2]/td/table[1]/tr[2]/td/div/div/div/textarea")).sendKeys(sjjc_content);
log.info("事件监测 内容----------");
Thread.sleep(2000);
//保电工作 标题
String bdgz_title = bean.getPower_work_title();
webDriver.findElement(By.xpath("/html/body/div[3]/div/div[2]/div/form/div[4]/table/tr[2]/td/table[2]/tr[1]/td/div[3]/div/div/textarea")).sendKeys(bdgz_title);
log.info("保电工作 标题----------");
Thread.sleep(2000);
//保电工作 内容
String bdgz_content = bean.getPower_work_content();
System.out.println("bdgz_content" + bdgz_content);
WebElement bdgzContentElement = webDriver.findElement(By.xpath("/html/body/div[3]/div/div[2]/div/form/div[4]/table/tr[2]/td/table[2]/tr[2]/td/div/div/div[1]/textarea"));
bdgzContentElement.clear();
bdgzContentElement.sendKeys(bdgz_content.trim());
// webDriver.findElement(By.xpath("/html/body/div[3]/div/div[2]/div/form/div[4]/table/tr[2]/td/table[2]/tr[2]/td/div/div/div[1]/textarea")).sendKeys(bdgz_content);
log.info("保电工作 内容----------");
Thread.sleep(2000);
//资源核查 标题
String zyhc_title = bean.getResource_check_title();
webDriver.findElement(By.xpath("/html/body/div[3]/div/div[2]/div/form/div[4]/table/tr[2]/td/table[3]/tr[1]/td/div[3]/div/div/textarea")).sendKeys(zyhc_title);
log.info("资源核查 标题----------");
Thread.sleep(500);
//资源核查 内容
String zyhc_content = bean.getResource_check_content();
webDriver.findElement(By.xpath("/html/body/div[3]/div/div[2]/div/form/div[4]/table/tr[2]/td/table[3]/tr[2]/td/div/div/div/textarea")).sendKeys(zyhc_content);
log.info("资源核查 内容----------");
Thread.sleep(500);
//通信测试 标题
String txcs_title = bean.getCommunications_test_title();
webDriver.findElement(By.xpath("/html/body/div[3]/div/div[2]/div/form/div[4]/table/tr[2]/td/table[4]/tr[1]/td/div[3]/div/div/textarea")).sendKeys(txcs_title);
log.info("通信测试 标题----------");
Thread.sleep(500);
//通信测试 内容
String txcs_content = bean.getCommunications_test_content();
webDriver.findElement(By.xpath("/html/body/div[3]/div/div[2]/div/form/div[4]/table/tr[2]/td/table[4]/tr[2]/td/div/div/div/textarea")).sendKeys(txcs_content);
log.info("通信测试 内容----------");
Thread.sleep(500);
//日常操练情况 标题
String rcclqk_title = bean.getDaily_operation_title();
webDriver.findElement(By.xpath("/html/body/div[3]/div/div[2]/div/form/div[4]/table/tr[2]/td/table[5]/tr[1]/td/div[3]/div/div/textarea")).sendKeys(rcclqk_title);
log.info("日常操练情况 标题----------");
Thread.sleep(500);
//日常操练情况 内容
String rcclqk_content = bean.getDaily_operation_content();
webDriver.findElement(By.xpath("/html/body/div[3]/div/div[2]/div/form/div[4]/table/tr[2]/td/table[5]/tr[2]/td/div/div/div/textarea")).sendKeys(rcclqk_content);
log.info("日常操练情况 内容----------");
Thread.sleep(500);
//日报填写情况 标题
String rbtxqk_title = bean.getDaily_submission_title();
webDriver.findElement(By.xpath("/html/body/div[3]/div/div[2]/div/form/div[4]/table/tr[2]/td/table[6]/tr[1]/td/div[3]/div/div/textarea")).sendKeys(rbtxqk_title);
log.info("日报填写情况 标题----------");
Thread.sleep(500);
//日常操练情况 内容
String rbtxqk_content = bean.getDaily_submission_content();
webDriver.findElement(By.xpath("/html/body/div[3]/div/div[2]/div/form/div[4]/table/tr[2]/td/table[6]/tr[2]/td/div/div/div/textarea")).sendKeys(rbtxqk_content);
log.info("日常操练情况 内容----------");
Thread.sleep(500);
//预警处置 标题
String yjcz_title = bean.getWarning_disposal_title();
webDriver.findElement(By.xpath("/html/body/div[3]/div/div[2]/div/form/div[4]/table/tr[2]/td/table[7]/tr[1]/td/div[3]/div/div/textarea")).sendKeys(yjcz_title);
log.info("预警处置 标题----------");
Thread.sleep(500);
//预警处置 内容
String yjcz_content = bean.getWarning_disposal_content();
webDriver.findElement(By.xpath("/html/body/div[3]/div/div[2]/div/form/div[4]/table/tr[2]/td/table[7]/tr[2]/td/div/div/div/textarea")).sendKeys(yjcz_content);
log.info("预警处置 内容----------");
Thread.sleep(500);
//一般记事 标题
String ybjs_title = bean.getGeneral_chronicles_title();
webDriver.findElement(By.xpath("/html/body/div[3]/div/div[2]/div/form/div[4]/table/tr[2]/td/table[8]/tr[1]/td/div[3]/div/div/textarea")).sendKeys(ybjs_title);
log.info("一般记事 标题----------");
Thread.sleep(500);
//一般记事 内容
String ybjs_content = bean.getGeneral_chronicles_content();
webDriver.findElement(By.xpath("/html/body/div[3]/div/div[2]/div/form/div[4]/table/tr[2]/td/table[8]/tr[2]/td/div/div/div/textarea")).sendKeys(ybjs_content);
log.info("一般记事 内容----------");
Thread.sleep(500);
//提交日志
WebElement submitDay = webDriver.findElement(By.xpath("/html/body/div[3]/div/div[3]/div/button[3]"));
log.info("提交日志按钮:" + submitDay.getText());
submitDay.click();
log.info("提交日志----------");
Thread.sleep(2000);
//点击弹出框确认 /html/body/div[4]/div/div[3]/button[2]
WebElement qrBtn = webDriver.findElement(By.xpath("/html/body/div[4]/div/div[3]/button[2]"));
Thread.sleep(2000);
log.info("确认日志按钮:" + qrBtn.getText());
qrBtn.click();
Thread.sleep(1000 * 3);
//取消
// webDriver.findElement(By.xpath("/html/body/div[4]/div/div[3]/button[1]")).click();
log.info("点击弹出框确认----------");
Thread.sleep(500);
//测试 点击取消按钮
/*webDriver.findElement(By.xpath("/html/body/div[3]/div/div[3]/div/button[1]")).click();
log.info("点击取消----------");
Thread.sleep(500);*/
//退出当前iframe,
webDriver.switchTo().defaultContent();
log.info("退出当前iframe----------");
Thread.sleep(500);
//定位值班管理iframe的标签
WebElement dutyIframe = webDriver.findElement(By.id("zbgln"));
webDriver.switchTo().frame(dutyIframe);
log.info("定位值班管理iframe的标签----------");
Thread.sleep(500);
}
public static void main(String[] args) throws ParseException {
int tr = 1;
int td = 1;
String currentDay = "2024-01-01";
System.out.println(currentDay);
int weekNum = DateTimeUtils.getWeekNum(currentDay);
System.out.println(weekNum);
int dayNum = DateTimeUtils.getWeekOfDate(currentDay);
System.out.println(dayNum);
/*if (dayNum == 1) {
tr = weekNum - 1;
td = 7;
} else {
tr = weekNum;
td = dayNum - 1;
}*/
if (dayNum == 1) {
if (DateTimeUtils.getMonthOneDayIs0()) {//第一天是0
tr = weekNum;
} else {
tr = weekNum - 1;
if (weekNum == 1) {
tr = 5;
}
}
td = 7;
} else {
if (DateTimeUtils.getMonthOneDayIs0()) {//第一天是0
tr = weekNum + 1;
} else {
tr = weekNum;
}
td = dayNum - 1;
}
System.out.println(tr);
System.out.println(td);
System.out.println("-------------------------");
//获取上月最后一天日期
String mothDay = "2023-12-31";
System.out.println(mothDay);
//判断上个月最后一天的位置
tr = DateTimeUtils.getWeekNum(mothDay);
td = DateTimeUtils.getWeekOfDate(mothDay);
System.out.println(tr);
System.out.println(td);
System.out.println(mothDay.substring(8,10));
}
}