Index: ssts-web/src/test/java/test/forgon/disinfectsystem/selenium/Materials.java =================================================================== diff -u -r20583 -r20609 --- ssts-web/src/test/java/test/forgon/disinfectsystem/selenium/Materials.java (.../Materials.java) (revision 20583) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/selenium/Materials.java (.../Materials.java) (revision 20609) @@ -159,7 +159,7 @@ Utils.retryingFindAndSendKeys(By.id("supplier1"), Keys.DOWN); Utils.retryingFindAndSendKeys(By.id("supplier1"), "\n"); - Utils.retryingFindAndSendKeys(By.id("amount1"), "5" + "\n"); + Utils.retryingFindAndSendKeys(By.id("amount1"), "10" + "\n"); Utils.retryingFindAndSendKeys(By.id("name1"), "\n"); Utils.retryingFindAndClear(By.id("cost1")); Utils.retryingFindAndSendKeys(By.id("cost1"), a + ".234" + "\n"); @@ -170,7 +170,7 @@ Utils.retryingFindAndSendKeys(By.id("supplier1"), Keys.DOWN); Utils.retryingFindAndSendKeys(By.id("supplier1"), "\n"); - Utils.retryingFindAndSendKeys(By.id("amount1"), "5" + "\n"); + Utils.retryingFindAndSendKeys(By.id("amount1"), "10" + "\n"); Utils.retryingFindAndSendKeys(By.id("name1"), "\n"); Utils.retryingFindAndClear(By.id("cost1")); Utils.retryingFindAndSendKeys(By.id("cost1"), a + ".456" + "\n"); Index: ssts-web/src/test/java/test/forgon/disinfectsystem/selenium/ALL.java =================================================================== diff -u -r20588 -r20609 --- ssts-web/src/test/java/test/forgon/disinfectsystem/selenium/ALL.java (.../ALL.java) (revision 20588) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/selenium/ALL.java (.../ALL.java) (revision 20609) @@ -59,9 +59,9 @@ private Sign sign = new Sign(); private Login login = new Login(); private Materials materials = new Materials(); - private Regular_Monitor regular_Monitor= new Regular_Monitor(); + private Regular_Monitor regular_Monitor = new Regular_Monitor(); private Recall recall = new Recall(); - private Intervene intervene=new Intervene(); + private Intervene intervene = new Intervene(); boolean displayed = false; // @BeforeMethod @@ -115,10 +115,10 @@ @Test public void all() { try { - initCSSDData(); - // 由于省医增加配置一次性物品没库存无法申请,调整一次性物品入库到申请前 - oneUse(); - before(); + initCSSDData(); + // 由于省医增加配置一次性物品没库存无法申请,调整一次性物品入库到申请前 + oneUse(); + before(); System.out.print("回收开始:"); Utils.DateTime(); final String SERVER_URL = Utils.settings.get("服务器地址").toString(); @@ -197,6 +197,7 @@ recyle.init(); /** 一级供应室回收带标识牌的回收单 */ recyle.recyle_recyleSignboardAndDropAndScrap(); + Utils.waitUntilUrlChange( SERVER_URL + "/disinfectsystem/touchScreen/recycle/awaitForRecycleList.jsp?resolution=1980", @@ -218,6 +219,7 @@ logger.info("一级供应室回收部分终止的单完成"); /** 切换篮筐并丢失材料 */ recyle.recyle_changeBasket(); + Utils.waitUntilUrlChange( SERVER_URL + "/disinfectsystem/touchScreen/recycle/awaitForRecycleList.jsp?resolution=1980", @@ -232,6 +234,7 @@ logger.info("一级供应室回收单确认完成"); /** 一级供应室回收申请单 */ recyle.recyle_oneSupplyRoomSignboard(); + Utils.waitUntilUrlChange( SERVER_URL + "/disinfectsystem/touchScreen/recycle/awaitForRecycleList.jsp?resolution=1980", @@ -254,7 +257,7 @@ element = Utils.retryingFindForthCellOfTable(By .id("awaitForRecycleTable")); if (Utils.isFind(element)) { - recyle.recyle_customSet(); + recyle.recyle_customSet(); Utils.waitUntilUrlChange( SERVER_URL + "/disinfectsystem/touchScreen/recycle/awaitForRecycleList.jsp?resolution=1980", @@ -462,6 +465,19 @@ Utils.retryingFindAndSwitchToFrame(By.id("iframe_enterpriseView")); reject.Reject_one_use_success(); reject.Reject_Mateials_success(); + /*** 供应室干预一次性物品 ***/ + System.out.print("干预开始:"); + Utils.refresh(); + intervene.Intervene_One_Use(); + intervene.Intervene_One_Use_Entry(); + Utils.refresh(); + Utils.retryingFindAndClick(By.id("enterpriseView")); + Utils.retryingFindAndSwitchToFrame(By.id("iframe_enterpriseView")); + Utils.retryingFindAndClick(By + .xpath("//div/span[contains(text(), '后台监控管理')]")); + Utils.retryingFindAndClick(By + .xpath("//div/a/span[contains(text(), '一次性物品管理')]")); + one.One_use_stock(); /*** 供应室领用 ***/ System.out.print("领用开始:"); Utils.refresh(); @@ -557,14 +573,7 @@ recall.Recall_One_use(); Utils.refresh(); recall.Recall_Set(); - /*** 供应室干预一次性物品***/ - System.out.print("干预开始:"); - Utils.driver.switchTo().defaultContent(); - Utils.retryingFindAndClick(By - .xpath("//span[contains(text(), '个人桌面')]")); - intervene.Intervene_One_Use(); - intervene.Intervene_One_Use_Entry(); - intervene.after(); + recall.after(); } catch (Exception e) { logger.error(e, e); e.printStackTrace(); @@ -628,20 +637,24 @@ } Set allWindowsId = Utils.driver.getWindowHandles(); for (String windowID : allWindowsId) { - if (Utils.driver.switchTo().window(windowID).getTitle() - .contains("消毒") - || Utils.driver.switchTo().window(windowID).getTitle() - .contains("WebDriver")) { - Utils.driver.switchTo().window(windowID); - System.out.println(windowID); - JSWaiter.waitUntilJQueryReady(); - Utils.driver.quit(); - WindowsUtils.killByName("conhost.exe"); - WindowsUtils.killByName("IEDriverServer.exe *32"); - WindowsUtils.killByName("iexplore.exe"); - // TODO:暂时用下面语句杀掉IE进程,解决IE8,win7运行后装配界面没有关闭的问题 - WindowsUtils.killByName("iexplore.exe *32"); - continue; + if (windowID != null) { + if (Utils.driver.switchTo().window(windowID).getTitle() + .contains("消毒") + || Utils.driver.switchTo().window(windowID).getTitle() + .contains("WebDriver")) { + Utils.driver.switchTo().window(windowID); + System.out.println(windowID); + JSWaiter.waitUntilJQueryReady(); + Utils.driver.quit(); + WindowsUtils.killByName("conhost.exe"); + WindowsUtils.killByName("IEDriverServer.exe *32"); + WindowsUtils.killByName("iexplore.exe"); + // TODO:暂时用下面语句杀掉IE进程,解决IE8,win7运行后装配界面没有关闭的问题 + WindowsUtils.killByName("iexplore.exe *32"); + continue; + } + } else { + break; } } Index: ssts-web/src/test/java/test/forgon/disinfectsystem/selenium/Assemble.java =================================================================== diff -u -r20588 -r20609 --- ssts-web/src/test/java/test/forgon/disinfectsystem/selenium/Assemble.java (.../Assemble.java) (revision 20588) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/selenium/Assemble.java (.../Assemble.java) (revision 20609) @@ -35,7 +35,7 @@ Utils.init(); Login login = new Login(); login.login_oneSupplyRoom(); -// login.login_secondSupplyRoom(); + // login.login_secondSupplyRoom(); Utils.retryingFindAndHover(By.id("packing")); @@ -93,24 +93,7 @@ editTreeGridCell("basketTreeGrid", 0, 2); - WebElement element = Utils.retryingFind(By - .cssSelector("input[name='sterilingType']")); - String name = Utils.settings.getJSONObject("灭菌程序").getString("名称1"); - if (Utils.isFind(element)) { - element.click(); - element.sendKeys(Keys.DOWN); - Utils.retryingFindAndClick(By - .xpath("//div/ul/li[contains(text(), '" + name + "')]")); - - } - - Utils.retryingFindAndClick(By.id("packageType-triggerWrap")); - - name = Utils.settings.getJSONObject("包装类型").getString("名称1"); - Utils.retryingFindAndClickBySeleniumAPI(By - .xpath("//div/ul/li[contains(text(), '" + name + "')]")); - - isAlertPresent(); + choice(); Utils.retryingFindAndClick(By.id("save_print")); /** 获取装配成功后的条码 **/ Utils.barcodes = Utils.getToussesBarcodes(); @@ -137,24 +120,7 @@ + "\n"); Utils.retryingFindAndClick(By.id("checkAllTaskNode-inputRow")); - String name = Utils.settings.getJSONObject("灭菌程序").getString("名称1"); - WebElement element = Utils.retryingFind(By - .id("sterilingType-triggerWrap")); - if (Utils.isFind(element)) { - element.click(); - Utils.retryingFindAndClick(By - .xpath("//div/ul/li[contains(text(), '" + name + "')]")); - } - - name = Utils.settings.getJSONObject("包装类型").getString("名称1"); - element = Utils.retryingFind(By.id("packageType-triggerWrap")); - if (element.getText().trim().equals("")) { - Utils.retryingFindAndClick(By.id("packageType-triggerWrap")); - Utils.retryingFindAndClickBySeleniumAPI(By - .xpath("//div/ul/li[contains(text(), '" + name + "')]")); - } - - isAlertPresent(); + choice(); Utils.retryingFindAndClick(By.id("save_print")); JSWaiter.waitUntilJQueryReady(); /** 获取装配成功后的条码 **/ @@ -498,24 +464,7 @@ Utils.retryingFindAndSendKeys( By.id("scanIdCardBarcode-inputEl"), signNum + "\n"); scan(); - element = Utils.retryingFind(By - .cssSelector("input[name='sterilingType']")); - String name = Utils.settings.getJSONObject("灭菌程序").getString( - "名称1"); - if (Utils.isFind(element)) { - element.click(); - Utils.retryingFindAndClick(By - .xpath("//div/ul/li[contains(text(), '" + name - + "')]")); - } - - Utils.retryingFindAndClick(By.id("packageType-triggerWrap")); - - name = Utils.settings.getJSONObject("包装类型").getString("名称1"); - Utils.retryingFindAndClickBySeleniumAPI(By - .xpath("//div/ul/li[contains(text(), '" + name + "')]")); - - isAlertPresent(); + choice(); Utils.retryingFindAndClick(By.id("save_print")); /** 获取装配成功后的条码 **/ Utils.barcodes = Utils.getToussesBarcodes(); @@ -531,6 +480,7 @@ Utils.retryingFind(By.id("scanIdCardBarcode-inputEl")) .sendKeys(signNum + "\n"); scan(); + choice(); Utils.retryingFindAndClick(By.id("save_print")); /** 获取装配成功后的条码 **/ Utils.barcodes = Utils.getToussesBarcodes(); @@ -543,6 +493,7 @@ Utils.retryingFindAndSendKeys( By.id("scanIdCardBarcode-inputEl"), signNum + "\n"); scan(); + choice(); Utils.retryingFindAndClick(By.id("save_print")); /** 获取装配成功后的条码 **/ Utils.barcodes = Utils.getToussesBarcodes(); @@ -642,17 +593,7 @@ Utils.retryingFindAndClick(By.id("checkAllTaskNode-inputRow")); Utils.retryingFindAndClick(By.id("sterilingType-triggerWrap")); // Actions click = new Actions(Utils.driver); - String name = Utils.settings.getJSONObject("灭菌程序").getString("名称1"); - Utils.retryingFindAndClick(By - .xpath("//div/ul/li[contains(text(), '" + name + "')]")); - - Utils.retryingFindAndClick(By.id("packageType-triggerWrap")); - - name = Utils.settings.getJSONObject("包装类型").getString("名称1"); - Utils.retryingFindAndClickBySeleniumAPI(By - .xpath("//div/ul/li[contains(text(), '" + name + "')]")); - - isAlertPresent(); + choice(); Utils.retryingFindAndClick(By.id("save_print")); /** 获取装配成功后的条码 **/ Utils.barcodes = Utils.getToussesBarcodes(); @@ -816,24 +757,25 @@ System.out.println("本次装配条码:" + Utils.barcodes); System.out.println("所有装配条码:" + Utils.reBarcodes); } - } - else - { + } else { scan(); - String name = Utils.settings.getJSONObject("灭菌程序").getString("名称1"); + String name = Utils.settings.getJSONObject("灭菌程序").getString( + "名称1"); WebElement element = Utils.retryingFind(By .id("sterilingType-triggerWrap")); if (Utils.isFind(element)) { element.click(); Utils.retryingFindAndClick(By - .xpath("//div/ul/li[contains(text(), '" + name + "')]")); + .xpath("//div/ul/li[contains(text(), '" + name + + "')]")); } name = Utils.settings.getJSONObject("包装类型").getString("名称1"); element = Utils.retryingFind(By.id("packageType-triggerWrap")); if (element.getText().trim().equals("")) { Utils.retryingFindAndClick(By.id("packageType-triggerWrap")); Utils.retryingFindAndClickBySeleniumAPI(By - .xpath("//div/ul/li[contains(text(), '" + name + "')]")); + .xpath("//div/ul/li[contains(text(), '" + name + + "')]")); } isAlertPresent(); Utils.retryingFindAndClick(By.id("save_print")); @@ -1217,6 +1159,9 @@ JSWaiter.waitUntilJQueryReady(); if (Utils.isFind(Utils.retryingFind(By.id("comboTousseWin")))) { System.out.print("聚合包窗口未消失"); + if(Utils.isFind(Utils.retryingFind(By.cssSelector("img[class='x4-tool-img x4-tool-close']")))){ + Utils.retryingFindAndClick(By.cssSelector("img[class='x4-tool-img x4-tool-close']")); + } } } catch (Exception e) { e.printStackTrace(); @@ -1286,11 +1231,20 @@ */ public void isAlertPresent() { try { + Alert alertBox = null; + boolean flag = false; Wait wait = WaitFactory.createDefaultWait(); wait.until(ExpectedConditions.alertIsPresent()); - Alert alertBox = Utils.driver.switchTo().alert(); - alertBox.accept(); + alertBox = Utils.driver.switchTo().alert(); + flag = true; + if (flag) { + alertBox.accept(); + } + else{ + System.out.print("没有对应的弹出框"); + } } catch (NoAlertPresentException e) { + System.out.print("没有对应的弹出框"); e.printStackTrace(); AssertJUnit.fail(e.getMessage()); } @@ -1342,4 +1296,27 @@ .xpath("//tbody/tr/td/em/button[contains(text(), '装配并打印标签')]")); JSWaiter.waitUntilJQueryReady(); } + + public void choice() { + WebElement element = Utils.retryingFind(By + .cssSelector("input[name='sterilingType']")); + String name = Utils.settings.getJSONObject("灭菌程序").getString( + "名称1"); + if (Utils.isFind(element)) { + element.click(); + element.sendKeys(Keys.DOWN); + Utils.retryingFindAndClick(By + .xpath("//div/ul/li[contains(text(), '" + name + + "')]")); + } + + Utils.retryingFindAndClick(By.cssSelector("input[name='packageType']")); + + name = Utils.settings.getJSONObject("包装类型").getString("名称1"); + Utils.retryingFindAndClickBySeleniumAPI(By + .xpath("//div/ul/li[contains(text(), '" + name + "')]")); + + isAlertPresent(); + } } + Index: ssts-web/src/test/java/test/forgon/disinfectsystem/selenium/Consume.java =================================================================== diff -u -r20396 -r20609 --- ssts-web/src/test/java/test/forgon/disinfectsystem/selenium/Consume.java (.../Consume.java) (revision 20396) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/selenium/Consume.java (.../Consume.java) (revision 20609) @@ -94,6 +94,15 @@ Utils.retryingFindAndSendKeys(By.id("materialCombo"), "\n"); Utils.retryingFindAndSendKeys(By.id("materialAmount"), "\n"); + if (Utils.high_Value_Consumables.size() != 0) { + if (Utils.isFind(Utils.retryingFind(By.id("barcode")))) { + Utils.retryingFindAndClick(By.id("barcode")); + Utils.retryingFindAndSendKeys(By.id("barcode"), + Utils.high_Value_Consumables.get(0)); + Utils.retryingFindAndSendKeys(By.id("barcode"), + "\n"); + } + } Utils.retryingFindAndClick(By .xpath("//button[contains(text(), '保存')]")); JSWaiter.waitUntilJQueryReady(); Index: ssts-web/src/test/java/test/forgon/disinfectsystem/selenium/Intervene.java =================================================================== diff -u -r20573 -r20609 --- ssts-web/src/test/java/test/forgon/disinfectsystem/selenium/Intervene.java (.../Intervene.java) (revision 20573) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/selenium/Intervene.java (.../Intervene.java) (revision 20609) @@ -104,7 +104,7 @@ Utils.retryingFind(By .cssSelector("div[class='x-combo-list-item x-combo-selected']")); Utils.retryingFindAndSendKeys(By.id("name1"), "\n"); - String x = (int) (Math.random() * 8 + 3) + ""; + String x = (int) (Math.random() * 8 + 4) + ""; Utils.retryingFindAndSendKeys(By.id("amount1"), x + "\n"); Utils.retryingFindAndSendKeys(By.id("batchNumber1"), "2017100" + x + "\n"); Index: ssts-web/src/test/java/test/forgon/disinfectsystem/selenium/One_use.java =================================================================== diff -u -r20261 -r20609 --- ssts-web/src/test/java/test/forgon/disinfectsystem/selenium/One_use.java (.../One_use.java) (revision 20261) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/selenium/One_use.java (.../One_use.java) (revision 20609) @@ -7,6 +7,8 @@ import java.text.SimpleDateFormat; import java.util.Date; +import java.util.List; +import java.util.function.Function; import org.openqa.selenium.By; import org.openqa.selenium.Keys; @@ -184,6 +186,15 @@ Wait wait = WaitFactory.createDefaultWait(); wait.until(ExpectedConditions.elementToBeClickable(By .id("wareHouse1"))); + if (Utils.high_Value_Consumables.size() != 0 + && Utils.high_Value_Consumables.size() > 2) { + if (Utils.isFind(Utils.retryingFind(By.id("barcode")))) { + Utils.retryingFindAndClick(By.id("barcode")); + Utils.retryingFindAndSendKeys(By.id("barcode"), + Utils.high_Value_Consumables.get(1)); + Utils.retryingFindAndSendKeys(By.id("barcode"), "\n"); + } + } Utils.retryingFindAndSendKeys(By.id("name1"), Utils.settings .getJSONObject("一级供应室一次性物品").getString("名称")); JSWaiter.waitUntilJQueryReady(); @@ -245,6 +256,15 @@ Utils.retryingFindAndSendKeys(By.id("amount1"), "1" + "\n"); Utils.retryingFindAndClick(By .xpath("//button[contains(text(), '添加')]")); + if (Utils.high_Value_Consumables.size() != 0 + && Utils.high_Value_Consumables.size() > 3) { + if (Utils.isFind(Utils.retryingFind(By.id("tempBarcode")))) { + Utils.retryingFindAndClick(By.id("tempBarcode")); + Utils.retryingFindAndSendKeys(By.id("tempBarcode"), + Utils.high_Value_Consumables.get(2)); + Utils.retryingFindAndSendKeys(By.id("tempBarcode"), "\n"); + } + } Utils.retryingFindAndClick(By .xpath("//button[contains(text(), '保存')]")); JSWaiter.waitUntilJQueryReady(); @@ -255,9 +275,57 @@ } /** - * 一次性物品盘点 + * 一次性物品获取高值耗材库存 * */ @Test + public void One_use_stock() { + try { + Utils.retryingFindAndClick(By + .xpath("//div/a/span[contains(text(), '高值耗材使用记录')]")); + Utils.retryingFindAndSwitchToFrame(By.id("mainFrame")); + Utils.retryingFind(By.id("tousseInstanceGrid")); + String name = Utils.settings.getJSONObject("一级供应室一次性物品2") + .getString("名称"); + if (Utils.isFind(Utils.retryingFind(By + .xpath("//td/div[contains(text(), '" + name + "')]")))) { + List allRows = Utils.driver.findElements(By + .cssSelector("table[class='x-grid3-row-table']")); + System.out.println("rows size = " + allRows.size()); + JSWaiter.waitUntilJQueryReady(); + if (allRows.size() > 0) { + allRows = Utils.driver.findElements(By + .cssSelector("table[class='x-grid3-row-table']")); + System.out.println("rows size = " + allRows.size()); + JSWaiter.waitUntilJQueryReady(); + String b = null; + for (WebElement row : allRows) { + b = row.getText(); + if (b.length() >= 9) { + b = b.trim(); + b = b.substring(b.indexOf("0"), b.indexOf("0") + 9); + Utils.high_Value_Consumables.add(b); + System.out.println("所有高值耗材的条码:" + + Utils.high_Value_Consumables); + continue; + } else { + break; + } + } + } + } else { + System.out.println("没有找到高值耗材的库存条码"); + } + JSWaiter.waitUntilJQueryReady(); + } catch (Exception e) { + e.printStackTrace(); + AssertJUnit.fail(e.getMessage()); + } + } + + /** + * 一次性物品盘点(高值耗材盘盈、一次性物品盘盈、盘亏) + * */ + @Test public void One_use_check() { try { Date now = new Date(); @@ -287,8 +355,14 @@ Actions actions = new Actions(Utils.driver); actions.moveToElement(Utils.retryingFind(element)).click() .perform(); + String a = Utils.retryingFind(element).getText(); + System.out.println(a); + int i = Integer.parseInt(a); + System.out.println(i); + i = i + 2; + System.out.println(i); actions.moveToElement(Utils.retryingFind(element)) - .sendKeys("10" + "\n").perform(); + .sendKeys(i + "\n").perform(); actions.moveToElement(Utils.retryingFind(element)) .sendKeys(Keys.BACK_SPACE).perform(); actions.moveToElement(Utils.retryingFind(element)) @@ -297,6 +371,8 @@ .sendKeys(Keys.BACK_SPACE).perform(); actions.moveToElement(Utils.retryingFind(element)) .sendKeys("2" + "\n").perform(); + actions.moveToElement(Utils.retryingFind(element)) + .sendKeys("10" + "\n").perform(); Utils.retryingFindAndClick(By .xpath("//button[contains(text(), '更新库存并结算')]")); JSWaiter.waitUntilJQueryReady(); Index: ssts-web/src/test/java/test/forgon/disinfectsystem/selenium/tools/Utils.java =================================================================== diff -u -r20068 -r20609 --- ssts-web/src/test/java/test/forgon/disinfectsystem/selenium/tools/Utils.java (.../Utils.java) (revision 20068) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/selenium/tools/Utils.java (.../Utils.java) (revision 20609) @@ -125,6 +125,10 @@ * 单次一次性物品入库后产生的条码 */ public static List disposableGoodsBatchBarcodesAfterEntry = new ArrayList(); + /** + * 一次性物品高值耗材条码 + */ + public static List high_Value_Consumables = new ArrayList(); public static SeleniumRuntimeData getSeleniumRuntimeData() { return seleniumRuntimeData;