/** * */ package test_4_1; import org.testng.annotations.Test; import org.testng.annotations.BeforeMethod; import org.testng.AssertJUnit; import org.openqa.selenium.By; import org.openqa.selenium.Keys; import org.openqa.selenium.WebElement; import org.openqa.selenium.interactions.Actions; import test_4_1.tools.Utils; /** * @author cherry 2016-03-03 * */ /*** 中大五院临床科室申请器械包、敷料包、一次性物品、消毒物品、外来器械、借物 ***/ public class Zdwy { @BeforeMethod public void before() { try { Utils.DateTime(); Apply apply = new Apply(); apply.init(); Thread.sleep(1000); System.out.println("中大五院临床科室向二级供应室申请器械包、敷料包、消毒物品"); apply.apply_secondSupplyRoom(); Thread.sleep(1000); Utils.DateTime(); System.out.println("中大五院临床科室向一级供应室申请器械包、敷料包、消毒物品"); apply.apply_oneSupplyRoom(); Thread.sleep(1000); Utils.DateTime(); System.out.println("中大五院临床科室向一级供应室申请借物"); WebElement frame = Utils.driver.findElement(By .id("iframe_recyclingApplication")); Utils.driver.switchTo().frame(frame); Utils.driver.findElement( By.xpath("//button[contains(text(), '借物')]")).click(); String currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); Actions action = new Actions(Utils.driver); action.click( Utils.driver.findElement(By .cssSelector("input[name='handleDepart']"))) .sendKeys(Keys.DOWN).perform(); action.click( Utils.driver.findElement(By .cssSelector("input[name='handleDepart']"))) .sendKeys(Keys.DOWN).perform(); String name = Utils.settings.getJSONObject("一级供应室用户").getString( "科室名称"); action.click( Utils.driver.findElement(By .xpath("//div/div[contains(text(), '" + name + "')]"))).perform(); apply.apply_borrow(); Thread.sleep(1000); apply.after(); Login login = new Login(); login.init(); login.login_secondSupplyRoom(); Utils.driver.findElement(By.id("recyclingApplication")).click(); Utils.DateTime(); System.out.println("中大五院临床科室向二级供应室申请外来器械"); frame = Utils.driver.findElement(By .id("iframe_recyclingApplication")); Utils.driver.switchTo().frame(frame); Utils.driver.findElement( By.xpath("//button[contains(text(), '申请外来器械')]")).click(); apply.apply_foreignSetInformation(); Thread.sleep(1000); Utils.DateTime(); apply.after(); } catch (Exception e) { e.printStackTrace(); AssertJUnit.fail(e.getMessage()); } } /*** 中大五院供应室流程 ***/ @Test public void all() { /*** 一级供应室回收 ***/ try { Utils.DateTime(); Recyle recyle = new Recyle(); recyle.init(); Thread.sleep(1000); System.out.println("一级供应室回收回收单"); recyle.recyle_recyleAndDropAndScrap(); recyle.after(); recyle.init(); System.out.println("一级供应室回收单确认"); recyle.recyle_confirm(); Thread.sleep(1000); System.out.println("一级供应室回收申请单"); recyle.recyle_oneSupplyRoom(); recyle.after(); /*** 一级供应室清洗 ***/ Wash wash = new Wash(); wash.init(); wash.wash_oneSupplyRoom(); wash.after(); /*** 二级供应室回收 ***/ Login login = new Login(); login.init(); Utils.DateTime(); login.login_secondSupplyRoom(); Utils.changeWindow(); Utils.DateTime(); Thread.sleep(1000); System.out.println("二级供应室自定义入筐回收申请单"); WebElement bodyElement = Utils.driver.findElement(By .tagName("body")); // 输入中心手术室条码,只显示中心手术室的申请单 Thread.sleep(500); bodyElement.sendKeys(Utils.settings.getJSONObject("临床科室") .getString("条码") + "\n"); Thread.sleep(1000); Utils.retryingFindClickFirstCellOfTable(By .id("awaitForRecycleTable")); recyle.recyle_custom(); Thread.sleep(1000); Utils.DateTime(); /*** 外来器械回收 ***/ System.out.println("二级供应室自定义入筐回收外来器械"); bodyElement = Utils.driver.findElement(By.tagName("body")); // 输入中心手术室条码,只显示中心手术室的申请单 bodyElement.sendKeys(Utils.settings.getJSONObject("临床科室") .getString("条码") + "\n"); recyle.recyle_custom(); recyle.after(); /*** 二级供应室清洗 ***/ login.init(); login.login_secondSupplyRoom(); Utils.driver.findElement(By.id("washAndDisinfect")).click(); for (String winHandle : Utils.driver.getWindowHandles()) { Utils.driver.switchTo().window(winHandle); } Thread.sleep(1000); Utils.DateTime(); System.out.println("二级供应室清洗"); WebElement frame = Utils.driver.findElement(By .id("iframe_washAndDisinfect")); Utils.driver.switchTo().frame(frame); Utils.driver.findElement( By.xpath("//button[contains(text(), '添加')]")).click(); Thread.sleep(1000); Utils.driver.switchTo().defaultContent(); String currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); wash.wash_secondSupplyRoom(); Assemble assemble = new Assemble(); /*** 二级供应室装配消毒物品 ***/ Utils.DateTime(); System.out.println("二级供应室装配消毒物品"); assemble.assemble_secondSupplyRoomsterilize(); /*** 二级供应室审核消毒物品 ***/ Utils.driver.switchTo().defaultContent(); Utils.driver.findElement( By.xpath("//span[contains(text(), '个人桌面')]")).click(); Actions moveover = new Actions(Utils.driver); moveover.moveToElement( Utils.driver.findElement(By.id("reviewPacking"))).perform(); Thread.sleep(1000); Utils.driver.findElement( By.linkText(Utils.settings.getJSONObject("二级供应室装配组") .getString("名称3"))).click(); frame = Utils.driver.findElement(By.id("iframe_reviewPacking")); Utils.driver.switchTo().frame(frame); Review review = new Review(); Utils.DateTime(); System.out.println("二级供应室审核消毒物品"); review.Review_batch(); Thread.sleep(1000); /*** 拆包装配外来器械 ***/ Utils.DateTime(); System.out.println("二级供应室拆包装配外来器械"); assemble.assemble_zdwy_unpackForgein(); Utils.DateTime(); System.out.println("二级供应室装配器械包"); assemble.assemble_secondSupplyRoomSet(); /*** 二级供应室审核器械包 ***/ Utils.driver.switchTo().defaultContent(); Utils.driver.findElement( By.xpath("//span[contains(text(), '个人桌面')]")).click(); moveover = new Actions(Utils.driver); moveover.moveToElement( Utils.driver.findElement(By.id("reviewPacking"))).perform(); Thread.sleep(1000); Utils.driver.findElement( By.linkText(Utils.settings.getJSONObject("二级供应室装配组") .getString("名称1"))).click(); frame = Utils.driver.findElement(By.id("iframe_reviewPacking")); Utils.driver.switchTo().frame(frame); Utils.DateTime(); System.out.println("二级供应室批量审核"); review.Review_batch(); Thread.sleep(1000); /*** 二级供应室灭菌 ***/ Utils.DateTime(); System.out.println("二级供应室灭菌"); Disinfection disinfection = new Disinfection(); Utils.driver.navigate().refresh(); currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); Utils.tryToCloseWarningWindow(); moveover = new Actions(Utils.driver); moveover.moveToElement( Utils.driver.findElement(By.id("sterilizationRecord"))) .perform(); Thread.sleep(1000); Utils.driver.findElement( By.linkText(Utils.settings.getJSONObject("二级供应室灭菌炉") .getString("分类"))).click(); Thread.sleep(1000); frame = Utils.driver.findElement(By .id("iframe_sterilizationRecord")); Utils.driver.switchTo().frame(frame); Utils.driver.findElement( By.xpath("//button[contains(text(), '添加')]")).click(); Thread.sleep(1000); Utils.driver.switchTo().defaultContent(); currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); disinfection.disinfection_secondSupplyRoom(); disinfection.confirm_Two(); /*** 二级供应室发货 ***/ Utils.DateTime(); System.out.println("二级供应室发货"); Utils.driver.switchTo().defaultContent(); Utils.driver.findElement( By.xpath("//span[contains(text(), '个人桌面')]")).click(); Utils.driver.findElement(By.id("invoicePlan")).click(); frame = Utils.driver.findElement(By.id("iframe_invoicePlan")); Utils.driver.switchTo().frame(frame); String name = Utils.settings.getJSONObject("临床科室").getString("名称"); Thread.sleep(1000); Utils.driver.findElement( By.xpath("//a[contains(text(), '" + name + "')]")).click(); Utils.driver.switchTo().defaultContent(); currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); Delivery delivery = new Delivery(); Thread.sleep(2000); delivery.Delivery_secondSupplyRoom(); Thread.sleep(1000); delivery.after(); /*** 器械包退货 ***/ Utils.DateTime(); System.out.println("二级供应室发货后,在一级供应室退货"); Reject reject = new Reject(); reject.init(); reject.Reject_set_success(); reject.after(); /*** 二级供应室装配用于代理灭菌 ***/ login.init(); login.login_secondSupplyRoom(); Utils.DateTime(); System.out.println("二级供应室装配敷料包用于代理灭菌"); assemble.assemble_secondSupplyRoomdressing(); assemble.after(); login.init(); login.login_oneSupplyRoom(); /*** 代理灭菌 ***/ Utils.DateTime(); System.out.println("一级供应室登记二级供应室的代理灭菌"); disinfection.disinfection_agent(); Thread.sleep(1000); /*** 外部代理灭菌 ***/ System.out.println("一级供应室登记外部代理灭菌"); disinfection.disinfection_agent_outside_noApply(); Thread.sleep(1000); /*** 自定义装配 ***/ Utils.DateTime(); System.out.println("一级供应室自定义装配"); assemble.assemble_custom(); Thread.sleep(1000); /*** 装配敷料包 ***/ Utils.DateTime(); System.out.println("一级供应室装配敷料包"); assemble.assemble_zdwy_dressing(); /*** 补充回收丢失、报损 ***/ Utils.driver.switchTo().defaultContent(); Utils.driver.findElement( By.xpath("//span[contains(text(), '个人桌面')]")).click(); Utils.DateTime(); System.out.println("一级供应室材料入库用于补充丢失、报损"); Materials_Godown_Entry godown_Entry = new Materials_Godown_Entry(); godown_Entry.Materials_Godown_Entry_success(); godown_Entry.after(); /*** 装配丢失、报损的器械包 ***/ assemble.init(); Utils.DateTime(); System.out.println("一级供应室装配丢失、报损的器械包"); assemble.assemble_DropAndScrap(); /*** 审核丢失、报损器械包 ***/ Utils.driver.switchTo().defaultContent(); Utils.driver.findElement( By.xpath("//span[contains(text(), '个人桌面')]")).click(); moveover = new Actions(Utils.driver); Thread.sleep(2000); Utils.DateTime(); System.out.println("一级供应室审核丢失、报损器械包"); moveover.moveToElement( Utils.driver.findElement(By.id("reviewPacking"))).perform(); Thread.sleep(2000); Utils.driver.findElement( By.linkText(Utils.settings.getJSONObject("一级供应室装配组") .getString("名称1"))).click(); frame = Utils.driver.findElement(By.id("iframe_reviewPacking")); Utils.driver.switchTo().frame(frame); review.Review_single(); /*** 灭菌 ***/ Utils.driver.navigate().refresh(); currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); Utils.tryToCloseWarningWindow(); moveover = new Actions(Utils.driver); moveover.moveToElement( Utils.driver.findElement(By.id("sterilizationRecord"))) .perform(); Utils.DateTime(); System.out.println("一级供应室灭菌"); Thread.sleep(1000); Utils.driver.findElement( By.linkText(Utils.settings.getJSONObject("一级供应室灭菌炉") .getString("分类"))).click(); Thread.sleep(1000); frame = Utils.driver.findElement(By .id("iframe_sterilizationRecord")); Utils.driver.switchTo().frame(frame); Utils.driver.findElement( By.xpath("//button[contains(text(), '添加')]")).click(); Thread.sleep(1000); Utils.driver.switchTo().defaultContent(); currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); disinfection.disinfection_stopAndSuccess(); Thread.sleep(10000); disinfection.confirm_One(); Thread.sleep(1000); frame = Utils.driver.findElement(By .id("iframe_sterilizationRecord")); Utils.driver.switchTo().frame(frame); Utils.driver.findElement( By.xpath("//button[contains(text(), '添加')]")).click(); Thread.sleep(10000); Utils.driver.switchTo().defaultContent(); currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); disinfection.disinfection_failAndSuccess(); Thread.sleep(5000); disinfection.confirm_One(); /*** 一次性物品入库 ***/ One_use oneuse = new One_use(); Utils.driver.switchTo().defaultContent(); Utils.driver.findElement( By.xpath("//span[contains(text(), '个人桌面')]")).click(); Utils.driver.findElement(By.id("enterpriseView")).click(); frame = Utils.driver.findElement(By.id("iframe_enterpriseView")); Utils.driver.switchTo().frame(frame); Utils.driver.findElement( By.xpath("//div/span[contains(text(), '后台监控管理')]")).click(); Thread.sleep(500); Utils.driver.findElement( By.xpath("//div/a/span[contains(text(), '一次性物品管理')]")) .click(); Utils.DateTime(); System.out.println("一级供应室入库一次性物品"); oneuse.One_use_Entry_success(); Utils.driver.navigate().refresh(); currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); Utils.tryToCloseWarningWindow(); Utils.driver.findElement(By.id("enterpriseView")).click(); frame = Utils.driver.findElement(By.id("iframe_enterpriseView")); Utils.driver.switchTo().frame(frame); Utils.driver.findElement( By.xpath("//div/span[contains(text(), '后台监控管理')]")).click(); Thread.sleep(500); Utils.driver.findElement( By.xpath("//div/a/span[contains(text(), '一次性物品管理')]")) .click(); /*** 一次性物品退库 ***/ Utils.DateTime(); System.out.println("一级供应室退库一次性物品"); oneuse.One_use_cancle_success(); Thread.sleep(3000); Utils.driver.navigate().refresh(); currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); Utils.tryToCloseWarningWindow(); Utils.driver.findElement(By.id("enterpriseView")).click(); frame = Utils.driver.findElement(By.id("iframe_enterpriseView")); Utils.driver.switchTo().frame(frame); Utils.driver.findElement( By.xpath("//div/span[contains(text(), '后台监控管理')]")).click(); Thread.sleep(500); Utils.driver.findElement( By.xpath("//div/a/span[contains(text(), '一次性物品管理')]")) .click(); /*** 一次性物品调拨 ***/ Utils.DateTime(); System.out.println("一级供应室调拨一次性物品到二级供应室"); oneuse.One_use_allot_success(); Thread.sleep(1000); /*** 发货 ***/ Utils.driver.switchTo().defaultContent(); Utils.driver.findElement( By.xpath("//span[contains(text(), '个人桌面')]")).click(); Utils.driver.findElement(By.id("invoicePlan")).click(); frame = Utils.driver.findElement(By.id("iframe_invoicePlan")); Utils.driver.switchTo().frame(frame); Thread.sleep(1000); name = Utils.settings.getJSONObject("临床科室").getString("名称"); Thread.sleep(1000); Utils.driver.findElement( By.xpath("//a[contains(text(), '" + name + "')]")).click(); Utils.driver.switchTo().defaultContent(); currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); Thread.sleep(1000); Utils.DateTime(); System.out.println("一级供应室发货"); delivery.Delivery_oneSupplyRoomAndAgent(); Thread.sleep(1000); delivery.after(); /*** 使用记录 ***/ UserRecord userRecord = new UserRecord(); userRecord.init(); Utils.DateTime(); System.out.println("临床科室登记、审核并申请使用记录"); userRecord.UserRecord_success(); userRecord.after(); /*** 代理灭菌二次发货 ***/ Utils.DateTime(); System.out.println("代理灭菌二次发货"); login.init(); login.login_secondSupplyRoom(); Utils.driver.switchTo().defaultContent(); Utils.driver.findElement( By.xpath("//span[contains(text(), '个人桌面')]")).click(); Utils.driver.findElement(By.id("invoicePlan")).click(); frame = Utils.driver.findElement(By.id("iframe_invoicePlan")); Utils.driver.switchTo().frame(frame); Utils.driver.findElement( By.xpath("//a[contains(text(), '" + name + "')]")).click(); Utils.driver.switchTo().defaultContent(); currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); delivery.Delivery_resendout(); delivery.after(); /*** 一次性物品退货 ***/ reject.init(); Utils.DateTime(); System.out.println("一级供应室发货后退货一次性物品"); reject.Reject_one_use_success(); Thread.sleep(1000); /*** 材料发货 ***/ Utils.DateTime(); System.out.println("一级供应室材料发货"); delivery.Delivery_materials(); Thread.sleep(1000); /*** 领用 ***/ Consume consume = new Consume(); Utils.driver.navigate().refresh(); currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); Utils.tryToCloseWarningWindow(); Utils.driver.findElement(By.id("enterpriseView")).click(); frame = Utils.driver.findElement(By.id("iframe_enterpriseView")); Utils.driver.switchTo().frame(frame); Utils.driver.findElement( By.xpath("//div/span[contains(text(), '后台监控管理')]")).click(); Thread.sleep(500); Utils.driver.findElement( By.xpath("//div/a/span[contains(text(), '消毒供应中心物品领用')]")) .click(); Thread.sleep(500); Utils.driver .findElement( By.xpath("//ul/li/div/a/span[contains(text(), '消毒供应中心物品领用')]")) .click(); Utils.DateTime(); System.out.println("一级供应室登记领用材料及一次性物品"); consume.Consume_success(); Thread.sleep(1000); /*** 材料退货 ***/ Utils.DateTime(); System.out.println("一级供应室材料退货"); reject.Reject_Mateials_success(); Thread.sleep(1000); /*** 使用记录转换的申请单回收 ***/ Utils.driver.switchTo().defaultContent(); Utils.driver.findElement( By.xpath("//span[contains(text(), '个人桌面')]")).click(); Utils.changeWindow(); Utils.DateTime(); System.out.println("一级供应室回收使用记录转换的申请单"); // 获取body对象,sendKeys更加可靠。actions.click()的方式在win10,IE11下不可靠 bodyElement = Utils.driver.findElement(By.tagName("body")); // 输入临床科室条码,只显示临床科室的申请单 bodyElement.sendKeys(Utils.settings.getJSONObject("临床科室") .getString("条码") + "\n"); Thread.sleep(1000); recyle.recyle_userRecordApplyUpdate(); Utils.DateTime(); recyle.after(); } catch (Exception e) { e.printStackTrace(); AssertJUnit.fail(e.getMessage()); } } }