package test_4_1; import org.testng.annotations.AfterMethod; import org.testng.annotations.Test; import org.testng.annotations.BeforeMethod; import org.testng.AssertJUnit; import org.apache.commons.collections4.CollectionUtils; import org.openqa.selenium.By; import org.openqa.selenium.Keys; import org.openqa.selenium.WebElement; import test_4_1.tools.Utils; public class Delivery { @BeforeMethod public void init() { Utils.init(); Login login = new Login(); login.login_oneSupplyRoom(); Utils.retryingFindAndClick(By.id("invoicePlan")); WebElement frame = Utils.retryingFindAndSwitchToFrame(By .id("iframe_invoicePlan")); String name = Utils.settings.getJSONObject("临床科室").getString("名称"); Utils.retryingFindAndClick(By.xpath("//a[contains(text(), '" + name + "')]")); Utils.driver.switchTo().defaultContent(); String currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); } @Test public void Delivery_fail() { Utils.retryingFindAndClick(By.xpath("//button[contains(text(), '保存')]")); } /** * 器械包,敷料包发货 ,现在是手动初始化的数据,TODO 需要申请回收清洗装配审核灭菌模块也初始化数据。 * */ @Test public void Delivery_TousseAndDressing() { try { Utils.driver.navigate().refresh(); String currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); Utils.tryToCloseWarningWindow(); Utils.retryingFindAndClick(By.id("invoicePlan")); Utils.retryingFindAndSwitchToFrame(By .id("iframe_invoicePlan")); String name = Utils.settings.getJSONObject("临床科室").getString("名称"); Utils.retryingFindAndClick(By.xpath("//a[contains(text(), '" + name + "')]")); Utils.driver.switchTo().defaultContent(); currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); Utils.retryingFindAndSendKeys(By.id("senderBarcode"), Utils.settings.getJSONObject("一级供应室用户").getString("条码") + "\n"); Utils.retryingFind(By.id("scanText")).clear(); String barcode = Utils.getSeleniumRuntimeData() .getInsideTousseBarcode(); // 器械包条码 Utils.retryingFindAndSendKeys(By.id("scanText"), barcode + "\n"); barcode = Utils.getSeleniumRuntimeData().getDressingTousseBarcode(); // 敷料包条码 Utils.retryingFindAndSendKeys(By.id("scanText"), barcode + "\n"); // 外来器械包条码 Delivery_Foreign(); // 点击保存按钮 Utils.retryingFindAndClick(By .xpath("//button[contains(text(), '保存')]")); Utils.doWait(800); } catch (Exception e) { e.printStackTrace(); AssertJUnit.fail(e.getMessage()); } } /** * 消毒物品固定条码发货,TODO 需要申请回收清洗装配审核灭菌模块也初始化数据。 * */ @Test public void Delivery_FixedBarcodeDisinfection() { try { Utils.retryingFindAndSendKeys(By.id("senderBarcode"), Utils.settings.getJSONObject("一级供应室用户").getString("条码") + "\n"); Utils.retryingFind(By.id("scanText")).clear(); String barcode = Utils.getSeleniumRuntimeData() .getDisinfectionTousseFixedBarcode(); // 固定条码 Utils.retryingFindAndSendKeys(By.id("scanText"), barcode + "\n"); System.out.print("消毒物品条码:"+barcode); // 点击保存按钮 Utils.retryingFindAndClick(By.xpath("//button[contains(text(), '保存')]")); } catch (Exception e) { e.printStackTrace(); AssertJUnit.fail(e.getMessage()); } } /** * 消毒物品发货,TODO 需要申请回收清洗装配审核灭菌模块也初始化数据。 * */ @Test public void Delivery_Disinfection() { try { // Utils.retryingFindAndSendKeys(By.id("senderBarcode"), // Utils.settings.getJSONObject("一级供应室用户").getString("条码") // + "\n"); Utils.retryingFind(By.id("scanText")).clear(); // 条码 String barcode = Utils.getSeleniumRuntimeData() .getDisinfectionTousseBarcode(); Utils.retryingFindAndSendKeys(By.id("scanText"), barcode + "\n"); // 点击保存按钮 // Utils.retryingFindAndClick(By // .xpath("//button[contains(text(), '保存')]")); } catch (Exception e) { e.printStackTrace(); AssertJUnit.fail(e.getMessage()); } } /** * 外来器械发货,TODO 需要申请回收清洗装配审核灭菌模块也初始化数据。 * */ @Test public void Delivery_Foreign() { try { // Utils.retryingFindAndSendKeys(By.id("senderBarcode"), // Utils.settings.getJSONObject("一级供应室用户").getString("条码") // + "\n"); Utils.retryingFind(By.id("scanText")).clear(); String barcode = Utils.getSeleniumRuntimeData() .getForeignTousseBarcode(); Utils.retryingFindAndSendKeys(By.id("scanText"), barcode + "\n"); // 点击保存按钮 // Utils.retryingFindAndClick(By // .xpath("//button[contains(text(), '保存')]")); } catch (Exception e) { e.printStackTrace(); AssertJUnit.fail(e.getMessage()); } } /** * 外部代理灭菌发货,TODO 需要申请回收清洗装配审核灭菌模块也初始化数据。 * */ @Test public void Delivery_Foreignproxy() { try { Utils.retryingFindAndSendKeys(By.id("senderBarcode"), Utils.settings.getJSONObject("一级供应室用户").getString("条码") + "\n"); Utils.retryingFind(By.id("scanText")).clear(); String barcode = Utils.getSeleniumRuntimeData() .getForeignproxyTousseBarcode(); Utils.retryingFindAndSendKeys(By.id("scanText"), barcode + "\n"); // 点击保存按钮 Utils.retryingFindAndClick(By .xpath("//button[contains(text(), '保存')]")); } catch (Exception e) { e.printStackTrace(); AssertJUnit.fail(e.getMessage()); } } /** * 一级供应室发货 * */ @Test public void Delivery_oneSupplyRoom() { try { Utils.retryingFindAndSendKeys(By.id("senderBarcode"), Utils.settings.getJSONObject("一级供应室用户").getString("条码") + "\n"); // // 整筐发货 // Utils.retryingFindAndSendKeys(By.id("scanText"), // Utils.settings.getJSONObject("灭菌筐02").getString("条码") // + "\n"); Utils.retryingFind(By.id("scanText")).clear(); Utils.retryingFindAndSendKeys(By.id("scanText"), Utils.settings .getJSONObject("灭菌篮筐01").getString("条码") + "\n"); /** * 现数据取到的消毒物品固定条码不是固定条码,暂时无法发货,暂时屏蔽 // 消毒物品固定条码发货 * * Utils.retryingFind(By.id("scanText")).clear(); * Utils.retryingFindAndSendKeys(By.id("scanText"), * Utils.settings.getJSONObject("一级供应室消毒物品").getString("固定条码") + * "\n"); * * Utils.retryingFind(By.id("scanText")).clear(); * Utils.retryingFindAndSendKeys(By.id("scanText"), * Utils.settings.getJSONObject("一级供应室消毒物品1") .getString("固定条码") + * "\n"); **/ // 一次性物品发货 if (CollectionUtils .isNotEmpty(Utils.disposableGoodsBatchBarcodesAfterEntry)) { for (String barcode : Utils.disposableGoodsBatchBarcodesAfterEntry) { Utils.retryingFindAndClear(By.id("scanText")); Utils.retryingFindAndSendKeys(By.id("scanText"), barcode + "\n"); } } Delivery_Disinfection(); Utils.retryingFindAndClick(By .xpath("//button[contains(text(), '保存')]")); Utils.doWait(800); } catch (Exception e) { e.printStackTrace(); AssertJUnit.fail(e.getMessage()); } } /** * 一级供应室发货及代理灭菌发货 * */ @Test public void Delivery_oneSupplyRoomAndAgent() { try { Utils.retryingFindAndSendKeys(By.id("senderBarcode"), Utils.settings.getJSONObject("一级供应室用户").getString("条码") + "\n"); // 整筐发货 Utils.retryingFindAndSendKeys(By.id("scanText"), Utils.settings .getJSONObject("灭菌筐02").getString("条码") + "\n"); Utils.retryingFind(By.id("scanText")).clear(); Utils.retryingFindAndSendKeys(By.id("scanText"), Utils.settings .getJSONObject("灭菌篮筐01").getString("条码") + "\n"); // 消毒物品固定条码发货 Utils.retryingFind(By.id("scanText")).clear(); Utils.retryingFindAndSendKeys(By.id("scanText"), Utils.settings .getJSONObject("一级供应室消毒物品").getString("固定条码") + "\n"); // 敷料包固定条码发货 Utils.retryingFind(By.id("scanText")).clear(); Utils.retryingFindAndSendKeys(By.id("scanText"), Utils.settings .getJSONObject("一级供应室敷料包").getString("固定条码") + "\n"); // 一次性物品发货 Utils.retryingFind(By.id("scanText")).clear(); Utils.retryingFindAndSendKeys(By.id("scanText"), Utils.settings .getJSONObject("一级供应室一次性物品").getString("条码1") + "\n"); Utils.retryingFind(By.id("scanText")).clear(); Utils.retryingFindAndSendKeys(By.id("scanText"), Utils.settings .getJSONObject("一级供应室一次性物品").getString("条码2") + "\n"); Utils.retryingFind(By.id("scanText")).clear(); Utils.retryingFindAndSendKeys(By.id("scanText"), Utils.settings .getJSONObject("一级供应室一次性物品").getString("条码3") + "\n"); Utils.retryingFindAndClick(By .xpath("//button[contains(text(), '保存')]")); Utils.driver.navigate().refresh(); String currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); Utils.tryToCloseWarningWindow(); Utils.retryingFindAndClick(By.id("invoicePlan")); WebElement frame = Utils.retryingFindAndSwitchToFrame(By .id("iframe_invoicePlan")); String name = Utils.settings.getJSONObject("二级供应室用户").getString( "科室名称"); Utils.retryingFindAndClick(By.xpath("//a[contains(text(), '" + name + "')]")); Utils.driver.switchTo().defaultContent(); currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); // 代理灭菌发货 Utils.retryingFindAndSendKeys(By.id("senderBarcode"), Utils.settings.getJSONObject("一级供应室用户").getString("条码") + "\n"); for (int i = 0; i < Utils.resendout.size(); i++) { Utils.retryingFindAndSendKeys(By.id("scanText"), Utils.resendout.get(i) + "\n"); } Utils.retryingFindAndClick(By .xpath("//button[contains(text(), '保存')]")); } catch (Exception e) { e.printStackTrace(); AssertJUnit.fail(e.getMessage()); } } /** * 二级供应室发货 * */ @Test public void Delivery_secondSupplyRoom() { try { Utils.retryingFindAndSendKeys(By.id("senderBarcode"), Utils.settings.getJSONObject("二级供应室用户").getString("条码") + "\n"); // 整筐发货 Utils.retryingFindAndSendKeys(By.id("scanText"), Utils.settings .getJSONObject("二级供应室灭菌篮筐1").getString("条码") + "\n"); // 消毒物品固定条码发货 Utils.retryingFind(By.id("scanText")).clear(); Utils.retryingFindAndSendKeys(By.id("scanText"), Utils.settings .getJSONObject("二级供应室消毒物品").getString("固定条码") + "\n"); Utils.retryingFindAndClick(By .xpath("//button[contains(text(), '保存')]")); } catch (Exception e) { e.printStackTrace(); AssertJUnit.fail(e.getMessage()); } } /** * 代理灭菌二次发货 * */ @Test public void Delivery_resendout() { try { Utils.retryingFindAndSendKeys(By.id("senderBarcode"), Utils.settings.getJSONObject("二级供应室用户").getString("条码") + "\n"); for (int i = 0; i < Utils.resendout.size(); i++) { Utils.retryingFindAndSendKeys(By.id("scanText"), Utils.resendout.get(i) + "\n"); } Utils.retryingFindAndClick(By .xpath("//button[contains(text(), '保存')]")); } catch (Exception e) { e.printStackTrace(); AssertJUnit.fail(e.getMessage()); } } /** * 退货后再次发货 * */ @Test public void Delivery_rejectsendout() { try { Utils.retryingFindAndClick(By.id("invoicePlan")); WebElement frame = Utils.retryingFindAndSwitchToFrame(By .id("iframe_invoicePlan")); String name = Utils.settings.getJSONObject("临床科室").getString("名称"); Utils.retryingFindAndClick(By.xpath("//a[contains(text(), '" + name + "')]")); Utils.driver.switchTo().defaultContent(); String currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); Utils.retryingFindAndSendKeys(By.id("senderBarcode"), Utils.settings.getJSONObject("一级供应室用户").getString("条码") + "\n"); for (int i = 0; i < Utils.reBarcodes.size(); i++) { int a = Integer.valueOf(Utils.reBarcodes.get(i)).intValue(); if (a % 2 == 0) { Utils.retryingFindAndSendKeys(By.id("scanText"), Utils.reBarcodes.get(i) + "\n"); } } Utils.retryingFindAndClick(By .xpath("//button[contains(text(), '保存')]")); } catch (Exception e) { e.printStackTrace(); AssertJUnit.fail(e.getMessage()); } } /** * 材料发货 * */ @Test public void Delivery_materials() { try { Utils.driver.navigate().refresh(); String currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); Utils.tryToCloseWarningWindow(); Utils.retryingFindAndClick(By.id("enterpriseView")); WebElement frame = Utils.retryingFindAndSwitchToFrame(By .id("iframe_enterpriseView")); Utils.retryingFindAndClick(By .xpath("//div/a/span[contains(text(), '发货管理')]")); Utils.retryingFindAndClick(By .xpath("//div/a/span[contains(text(), '材料发货管理')]")); frame = Utils.retryingFindAndSwitchToFrame(By.id("mainFrame")); Utils.retryingFindAndClick(By .xpath("//button[contains(text(), '添加')]")); currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); Utils.retryingFindAndSendKeys(By.id("departSearch"), Keys.DOWN); String name = Utils.settings.getJSONObject("临床科室").getString("名称"); Utils.retryingFindAndClick(By .xpath("//div/div/div[contains(text(), '" + name + "')]")); Utils.retryingFindAndSendKeys(By.id("name1"), Utils.settings .getJSONObject("一级供应室材料").getString("拼音码")); Utils.retryingFindAndSendKeys(By.id("name1"), "\n"); Utils.retryingFindAndClick(By.id("userecordName")); for (String winHandle : Utils.driver.getWindowHandles()) { Utils.driver.switchTo().window(winHandle); } name = Utils.settings.getJSONObject("临床科室用户").getString("姓名"); Utils.retryingFindAndClick(By .xpath("//tbody/tr/td/div[contains(text(), '" + name + "')]")); Utils.retryingFindAndClick(By .xpath("//button[contains(text(), '确定')]")); for (String winHandle : Utils.driver.getWindowHandles()) { Utils.driver.switchTo().window(winHandle); } Utils.retryingFindAndSendKeys(By.id("amount1"), "2" + "\n"); Utils.retryingFindAndClick(By .xpath("//button[contains(text(), '保存')]")); } catch (Exception e) { e.printStackTrace(); AssertJUnit.fail(e.getMessage()); } } /** * 自定义发货 * */ @Test public void Delivery_custom() { try { Utils.driver.navigate().refresh(); String currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); Utils.tryToCloseWarningWindow(); Utils.retryingFindAndClick(By.id("enterpriseView")); WebElement frame = Utils.retryingFindAndSwitchToFrame(By .id("iframe_enterpriseView")); Utils.retryingFindAndClick(By .xpath("//div/a/span[contains(text(), '发货管理')]")); Utils.retryingFindAndClick(By .xpath("//div/a/span[contains(text(), '自定义发货')]")); frame = Utils.retryingFindAndSwitchToFrame(By.id("mainFrame")); currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); // 等待仓库加载 Utils.retryingFindAndDoAction( By.xpath("//input[contains(@value, '测试供应室仓库')]"), Utils.ACTION_NOP); Utils.retryingFindAndSendKeys(By.id("departBarcode"), Utils.settings.getJSONObject("临床科室").getString("条码") + "\n"); Utils.retryingFindAndSendKeys(By.id("senderBarcode"), Utils.settings.getJSONObject("一级供应室用户").getString("条码") + "\n"); String barcode = Utils.getSeleniumRuntimeData() .getInsideTousseBarcode(); // 器械包条码 Utils.retryingFindAndSendKeys(By.id("scanText"), barcode + "\n"); barcode = Utils.getSeleniumRuntimeData().getDressingTousseBarcode(); // 敷料包条码 Utils.retryingFindAndSendKeys(By.id("scanText"), barcode + "\n"); Utils.retryingFindAndClick(By .xpath("//button[contains(text(), '保存')]")); Thread.sleep(10 * 1000); } catch (Exception e) { e.printStackTrace(); AssertJUnit.fail(e.getMessage()); } } /** * 辅助发货 * */ @Test public void Delivery_auxiliary() { try { Utils.driver.navigate().refresh(); String currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); Utils.tryToCloseWarningWindow(); Utils.retryingFindAndClick(By.id("invoicePlan")); Utils.retryingFindAndSwitchToFrame(By .id("iframe_invoicePlan")); String name = Utils.settings.getJSONObject("临床科室").getString("名称"); Utils.retryingFindAndClick(By.xpath("//a[contains(text(), '" + name + "')]")); Utils.driver.switchTo().defaultContent(); currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); Utils.retryingFindAndClick(By .xpath("//button[contains(text(), '辅助发货')]")); currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); // 等待仓库加载 Utils.retryingFindAndDoAction( By.xpath("//input[contains(@value, '测试供应室仓库')]"), Utils.ACTION_NOP); Utils.retryingFindAndSendKeys(By.id("senderBarcode"), Utils.settings.getJSONObject("一级供应室用户").getString("条码") + "\n"); Utils.retryingFindAndSendKeys(By.id("personInChargeBarcode"), Utils.settings.getJSONObject("一级供应室用户").getString("条码") + "\n"); Utils.retryingFindAndClick(By .xpath("//div[@id='auxiliaryInvoice_sendOutGoodsDetail']//table/tbody/tr/td/div[contains(@class, 'x-grid3-col-0')]")); Utils.retryingFindAndClick(By .xpath("//button[contains(text(), '添加')]")); Utils.retryingFindAndClick(By .xpath("//button[contains(text(), '保存')]")); Utils.doWait(800); // Thread.sleep(10*1000); } catch (Exception e) { e.printStackTrace(); AssertJUnit.fail(e.getMessage()); } } @AfterMethod public void after() { Utils.driver.quit(); } }