From 8a9c2a9f25e647293dd09b00c8c1fdaa03739cc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A9=AC=E4=B8=89=E7=82=AE?= <15856818120@163.com> Date: Wed, 3 Sep 2025 15:37:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=B3=BB=E7=BB=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/bonus/autoweb/GetBasicData.java | 54 ++++++++++----- src/main/java/com/bonus/autoweb/TestMain.java | 2 +- .../com/bonus/autoweb/base/DutyDailyOp.java | 9 ++- .../com/bonus/autoweb/base/DutyLogIOp.java | 65 +++++++++++++++---- 4 files changed, 98 insertions(+), 32 deletions(-) diff --git a/src/main/java/com/bonus/autoweb/GetBasicData.java b/src/main/java/com/bonus/autoweb/GetBasicData.java index c365cdc..af2796b 100644 --- a/src/main/java/com/bonus/autoweb/GetBasicData.java +++ b/src/main/java/com/bonus/autoweb/GetBasicData.java @@ -306,7 +306,7 @@ public class GetBasicData { public void getYuJingBasicData(int classes) throws ParseException, InterruptedException { Thread.sleep(5000); String code = ""; - String code_child = "安排抢修队伍20支,合计242人(客户用电保障人员68人,电网运维保障人员174人)" + + String code_child = "宿州砀山公司安排抢修队伍20支,合计242人(客户用电保障人员68人,电网运维保障人员174人)" + "、车辆36台、发电机10台、照明灯具89套值守待命,准备配电20台、电缆2千米、电杆65基、绝缘子150只等,"; String code_chlid2 = "针对此次预警,今日砀山供电公司开展预警响应,对重要保电线路、变电站进行特巡,安排抢修队伍、绑定应急车辆、装备,抢修队长,通过i" + "国网反馈巡视照片、视频,在新一代系统里均形成巡视记录、车辆队伍轨迹,未发现问题。"; @@ -377,17 +377,36 @@ public class GetBasicData { logBean.setGeneral_chronicles_content(logBean.getGeneral_chronicles_content()); insertData(null, logBean, "log"); log.info("天气预警日志更新完成"); - dailyBean.setWarning_company(data + code+code_child + dailyContentArrayArray[28] + code_chlid2); - + if ("0".equals(numClasses.getText())) { + dailyBean.setWarning_company(data + code+code_child ); + dailyBean2.setWarning_company(data + code+code_child); + dailyBean.setWarning_company_impatient(data + code+code_child); + dailyBean2.setWarning_company_impatient(data + code+code_child); + dailyBean.setImportant_matters(data + "1"+code +"2"+dailyContentArrayArray[5].trim()); + dailyBean2.setImportant_matters(data + "1"+code +"2"+dailyContentArrayArray[5].trim()); + } else { + dailyBean.setWarning_company(data + code+"对系统检测图层中气象实况风速、温度、降雨进行查看、对专题灾害图层地震、台风防汛进行查看均正常,未对砀山" + + "辖区造成影响。通过首页公共气象图层检查宿州砀山境内公共预警正常;降雨预报、预警正常;雷达预报正常。"+code_child ); + dailyBean2.setWarning_company(data + code+"对系统检测图层中气象实况风速、温度、降雨进行查看、对专题灾害图层地震、台风防汛进行查看均正常,未对砀山" + + "辖区造成影响。通过首页公共气象图层检查宿州砀山境内公共预警正常;降雨预报、预警正常;雷达预报正常。"+code_child ); + dailyBean.setWarning_company_impatient(data + code+"对系统检测图层中气象实况风速、温度、降雨进行查看、对专题灾害图层地震、台风防汛进行查看均正常,未对砀山" + + "辖区造成影响。通过首页公共气象图层检查宿州砀山境内公共预警正常;降雨预报、预警正常;雷达预报正常。"+code_child ); + dailyBean2.setWarning_company_impatient(data + code+"对系统检测图层中气象实况风速、温度、降雨进行查看、对专题灾害图层地震、台风防汛进行查看均正常,未对砀山" + + "辖区造成影响。通过首页公共气象图层检查宿州砀山境内公共预警正常;降雨预报、预警正常;雷达预报正常。"+code_child ); + dailyBean.setImportant_matters(data + "1"+code +"对系统检测图层中气象实况风速、温度、降雨进行查看、对专题灾害图层地震、台风防汛进行查看均正常,未对砀山" + + "辖区造成影响。通过首页公共气象图层检查宿州砀山境内公共预警正常;降雨预报、预警正常;雷达预报正常。"+"2"+dailyContentArrayArray[5].trim()); + dailyBean2.setImportant_matters(data + "1"+code +"对系统检测图层中气象实况风速、温度、降雨进行查看、对专题灾害图层地震、台风防汛进行查看均正常,未对砀山" + + "辖区造成影响。通过首页公共气象图层检查宿州砀山境内公共预警正常;降雨预报、预警正常;雷达预报正常。"+"2"+dailyContentArrayArray[5].trim()); + } //一、总体情况 - dailyBean.setOverall(data + dailyContentArrayArray[2].trim() + (classes == 1 ? data3 + "08:00," : data2 + "17:30" + - ",") + dailyContentArrayArray[3].trim() + code + "对系统检测图层中气象实况风速、温度、降雨进行查看、对专题灾害图层地震、台风防汛进行查看均正常,未对砀山辖区造成影响。通过首页公共气象图层检查砀山境内公共预警正常;降雨预报、预警正常;雷达预报正常。"); + /* dailyBean.setOverall(data + dailyContentArrayArray[2].trim() + (classes == 1 ? data3 + "08:00," : data2 + "17:30" + + ",") + dailyContentArrayArray[3].trim() + code + "对系统检测图层中气象实况风速、温度、降雨进行查看、对专题灾害图层地震、台风防汛进行查看均正常,未对砀山辖区造成影响。通过首页公共气象图层检查砀山境内公共预警正常;降雨预报、预警正常;雷达预报正常。");*/ + dailyBean.setOverall(data + dailyContentArrayArray[2].trim()); dailyBean.setPersonnel_daily_work(dailyBean.getPersonnel_daily_work()); // +("0".equals(numClasses.getText()) ? "" :"针对此次预警,今日砀山供电公司开展预警响应,对重要保电线路、变电站进行特巡,安排抢修队伍、绑定应急车辆、装备,抢修队长,通过i国网反馈巡视照片、视频,在新一代系统里均形成巡视记录、车辆队伍轨迹,未发现问题") dailyBean2.setOverall(data + dailyContentArrayArray[2].trim() + (classes == 1 ? data3 + "08:00," : data2 + "17:30" + ",") + dailyContentArrayArray[3].trim() + code + "对系统检测图层中气象实况风速、温度、降雨进行查看、对专题灾害图层地震、台风防汛进行查看均正常,未对砀山辖区造成影响。通过首页公共气象图层检查砀山境内公共预警正常;降雨预报、预警正常;雷达预报正常。"); dailyBean2.setPersonnel_daily_work(dailyBean2.getPersonnel_daily_work()); - dailyBean2.setWarning_company(data + code+code_child + dailyContentArrayArray[28] + code_chlid2); insertData(dailyBean, null, "morning_daily"); insertData(dailyBean2, null, "evening_daily"); log.info("日志内容:" + readDutyBean()); @@ -660,17 +679,20 @@ public class GetBasicData { String data = data2 + "17:30至" + data3 + "08:00,"; //二、重要事项 - dailyBean.setImportant_matters(data + dailyContentArrayArray[5].trim()); + //dailyBean.setImportant_matters(data + dailyContentArrayArray[5].trim()); //随机-1 到 1 直接的两位小数 double randomNum = Math.random() * 8 - 4; double numRandom = (double) Math.round(randomNum * 100) / 100; //三、安全生产情况 - dailyBean.setSafety_production(data + dailyContentArrayArray[7].trim().split("--")[0] + (String.format("%" + + /* dailyBean.setSafety_production(data + dailyContentArrayArray[7].trim().split("--")[0] + (String.format("%" + ".2f", Double.parseDouble(maximumLoadArr[0].split(":")[1]) + numRandom)) + dailyContentArrayArray[7].trim().split( - "--")[2]); + "--")[2]);*/ + dailyBean.setSafety_production(dailyContentArrayArray[7]); //四、值班员日常工作情况 - dailyBean.setPersonnel_daily_work(data + dailyContentArrayArray[10].trim() + "(4)资源核查情况:20:00至21:00" + checkContentArrayArray[num].trim() + /* dailyBean.setPersonnel_daily_work(data + dailyContentArrayArray[10].trim() + "(4)资源核查情况:20:00至21:00" + checkContentArrayArray[num].trim() + dailyContentArrayArray[11].trim() + communicationTestName + dailyContentArrayArray[13].trim() + dailyContentArrayArray[14].trim() + dailyExercisesName + dailyContentArrayArray[16].trim() + "砀山公司对" + videoContentStr + "视频监控进行检查,未发现问题,对" + lineContentStr + "线路视频进行检查,视频接入正常。"); + */ + dailyBean.setPersonnel_daily_work(data + dailyContentArrayArray[10].trim()); //五、供电保障情况 //(一)今日重大活动保电情况 dailyBean.setPower_guarantee_today_work(dailyContentArrayArray[21]); @@ -682,7 +704,7 @@ public class GetBasicData { //(一)公司预警情况 --另外一个方法使用 //(二)公司应急响应情况 - dailyBean.setWarning_company_impatient(data + dailyContentArrayArray[30]); + //dailyBean.setWarning_company_impatient(data + dailyContentArrayArray[30]); //(三)社会突发事件救援及处置情况 dailyBean.setWarning_society_emergency(data + dailyContentArrayArray[32]); //七、其他情况说明 @@ -741,14 +763,16 @@ public class GetBasicData { //一、总体情况 // dailyBean2.setOverall(data + dailyContentArrayArray[2].trim() + data2 + "17:30," + dailyContentArrayArray[3].trim()); //二、重要事项 - dailyBean2.setImportant_matters(data + dailyContentArrayArray[5].trim()); + //dailyBean2.setImportant_matters(data + dailyContentArrayArray[5].trim()); //三、安全生产情况 double randomNum = Math.random() * 8 - 4; double numRandom = (double) Math.round(randomNum * 100) / 100; //四、值班员日常工作情况 - dailyBean2.setPersonnel_daily_work(data + dailyContentArrayArray[9].trim() + "(4)资源核查情况:10:00至12:00," + checkContentArrayArray[num].trim() - + dailyContentArrayArray[11].trim() + communicationTestName + dailyContentArrayArray[13].trim() + dailyContentArrayArray[14].trim() + dailyExercisesName + dailyContentArrayArray[16].trim() + "16:00至18:00" + "砀山公司对" + videoContentStr + "视频监控进行检查,未发现问题,对" + lineContentStr + "线路视频进行检查,视频接入正常。"); + /* dailyBean.setPersonnel_daily_work(data + dailyContentArrayArray[10].trim() + "(4)资源核查情况:20:00至21:00" + checkContentArrayArray[num].trim() + + dailyContentArrayArray[11].trim() + communicationTestName + dailyContentArrayArray[13].trim() + dailyContentArrayArray[14].trim() + dailyExercisesName + dailyContentArrayArray[16].trim() + "砀山公司对" + videoContentStr + "视频监控进行检查,未发现问题,对" + lineContentStr + "线路视频进行检查,视频接入正常。"); + */ + dailyBean.setPersonnel_daily_work(data + dailyContentArrayArray[10].trim()); //五、供电保障情况 //(一)今日重大活动保电情况 dailyBean2.setPower_guarantee_today_work(dailyContentArrayArray[21]); @@ -760,7 +784,7 @@ public class GetBasicData { //(一)公司预警情况 --另外一个方法使用 //(二)公司应急响应情况 - dailyBean2.setWarning_company_impatient(data + dailyContentArrayArray[30]); + //dailyBean2.setWarning_company_impatient(data + dailyContentArrayArray[30]); //(三)社会突发事件救援及处置情况 dailyBean2.setWarning_society_emergency(data + dailyContentArrayArray[32]); //七、其他情况说明 diff --git a/src/main/java/com/bonus/autoweb/TestMain.java b/src/main/java/com/bonus/autoweb/TestMain.java index 4716430..e980729 100644 --- a/src/main/java/com/bonus/autoweb/TestMain.java +++ b/src/main/java/com/bonus/autoweb/TestMain.java @@ -882,7 +882,7 @@ public class TestMain { String value = GetBasicData.resolveGarbledCode("E:\\bns\\config\\今日值班账号.txt"); resetCode = AutoUtils.write("E:\\bns\\config\\昨日值班账号.txt", value); } - } else if (DateTimeUtils.isEffectiveDate("18:20", "18:25")) { + } else if (DateTimeUtils.isEffectiveDate("19:50", "20:05")) { log.info("-----开始更新下次需签退账号-----"); if (resetCode1 == 0) { String value = GetBasicData.resolveGarbledCode("E:\\bns\\config\\今日值班账号.txt"); diff --git a/src/main/java/com/bonus/autoweb/base/DutyDailyOp.java b/src/main/java/com/bonus/autoweb/base/DutyDailyOp.java index 1bf7432..8f47c84 100644 --- a/src/main/java/com/bonus/autoweb/base/DutyDailyOp.java +++ b/src/main/java/com/bonus/autoweb/base/DutyDailyOp.java @@ -5,6 +5,7 @@ import com.bonus.autoweb.UI.entity.*; import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.io.json.JettisonMappedXmlDriver; import org.openqa.selenium.By; +import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.slf4j.LoggerFactory; @@ -71,9 +72,13 @@ public class DutyDailyOp { //晚报编辑标签定位 String wanBxpath = "//*[@id=\"pane-4\"]/div/div[3]/div/div/div[3]/table/tbody/tr[2]/td[5]/div/div/p[1]"; if (type == 1) { - webDriver.findElement(By.xpath(zaoBxPath)).click(); + // webDriver.findElement(By.xpath(zaoBxPath)).click(); + WebElement element = webDriver.findElement(By.xpath(zaoBxPath)); + ((JavascriptExecutor) webDriver).executeScript("arguments[0].click();", element); } else { - webDriver.findElement(By.xpath(wanBxpath)).click(); + //webDriver.findElement(By.xpath(wanBxpath)).click(); + WebElement element = webDriver.findElement(By.xpath(wanBxpath)); + ((JavascriptExecutor) webDriver).executeScript("arguments[0].click();", element); } log.info("打开早报或晚报编写-----------"); Thread.sleep(600); diff --git a/src/main/java/com/bonus/autoweb/base/DutyLogIOp.java b/src/main/java/com/bonus/autoweb/base/DutyLogIOp.java index 4d31e2a..5d47676 100644 --- a/src/main/java/com/bonus/autoweb/base/DutyLogIOp.java +++ b/src/main/java/com/bonus/autoweb/base/DutyLogIOp.java @@ -163,7 +163,8 @@ public class DutyLogIOp { /** * 内容填写 */ - private void dutyLogContent() throws InterruptedException { + 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(); @@ -269,16 +270,42 @@ public class DutyLogIOp { 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); - + Thread.sleep(5000); //通信测试 标题 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("通信测试 标题----------"); + log.info("txcs_title:{}", txcs_title); + try { + WebElement element = 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[1]/textarea")); + log.info("获取输入框-----div[3]"); + element.clear(); + element.sendKeys(txcs_title.trim()); + log.info("通信测试 标题----------"); + }catch (Exception e){ + log.info("通信测试 标题----------div[3]不存在",e.getMessage()); + } + try { + WebElement element =webDriver.findElement(By.xpath("/html/body/div[2]/div/div[2]/div/form/div[4]/table/tr[2]/td/table[4]/tr[1]/td/div[3]/div/div/textarea")); + log.info("获取输入框-----div[2]"); + element.clear(); + element.sendKeys(txcs_title.trim()); + log.info("通信测试 标题----------"); + }catch (Exception e){ + log.info("通信测试 标题----------div[2]不存在",e.getMessage()); + } + try { + WebElement element = webDriver.findElement(By.cssSelector("body > div.el-dialog__wrapper.ecs-dialog.otherDialog.limit.no-padding.no-radius.with-footer > div > div.el-dialog__body > div > form > div.btnShow > table > tr:nth-child(2) > td > table:nth-child(4) > tr:nth-child(1) > td > div.el-form-item.addId-box-title.is-required.el-form-item--small > div > div > textarea")); + log.info("获取输入框-----"); + element.clear(); + element.sendKeys(txcs_title.trim()); + log.info("输入成功"); + }catch (Exception e){ + log.info("通信测试 标题----------失败",e.getMessage()); + } + 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); + 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[1]/textarea")).sendKeys(txcs_content); log.info("通信测试 内容----------"); Thread.sleep(500); @@ -340,23 +367,33 @@ public class DutyLogIOp { try{ Thread.sleep(2000); webDriver.findElement(By.xpath("html/body/div[3]/div/div[3]/button[2]")); - log.info("是否确认签到----------"); + //点击弹出框确认 + WebElement qrBtn = webDriver.findElement(By.xpath("/html/body/div[3]/div/div[3]/button[2]")); + log.info("确认日志按钮:" + qrBtn.getText()); + qrBtn.click(); }catch (Exception e){ log.info("无确认框,在时间范围内div[3]----------"); } try{ Thread.sleep(2000); webDriver.findElement(By.xpath("html/body/div[4]/div/div[3]/button[2]")); - log.info("是否确认签到----------"); + //点击弹出框确认 + WebElement qrBtn = webDriver.findElement(By.xpath("/html/body/div[4]/div/div[3]/button[2]")); + log.info("确认日志按钮:" + qrBtn.getText()); + qrBtn.click(); }catch (Exception e){ log.info("无确认框,在时间范围内div[4]----------"); } - - - //点击弹出框确认 - WebElement qrBtn = webDriver.findElement(By.xpath("/html/body/div[4]/div/div[3]/button[2]")); - log.info("确认日志按钮:" + qrBtn.getText()); - qrBtn.click(); + try{ + Thread.sleep(2000); + webDriver.findElement(By.xpath("html/body/div[5]/div/div[3]/button[2]")); + //点击弹出框确认 + WebElement qrBtn = webDriver.findElement(By.xpath("/html/body/div[5]/div/div[3]/button[2]")); + log.info("确认日志按钮:" + qrBtn.getText()); + qrBtn.click(); + }catch (Exception e){ + log.info("无确认框,在时间范围内div[5]----------"); + } Thread.sleep(1000 * 3); //取消