package test_4_1; import org.openqa.selenium.By; import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebElement; import org.openqa.selenium.interactions.Actions; import org.testng.AssertJUnit; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; import test_4_1.tools.Utils; /** * @author cherry 2016-03-02 * */ public class PackingHistory { boolean displayed = false; @BeforeMethod public void init() { try { Utils.init(); Login login = new Login(); login.login_oneSupplyRoom(); // login.login_secondSupplyRoom(); // Utils.retryingFindAndClick(By.linkText(Utils.settings.getJSONObject("二级供应室装配组").getString("名称1"))); // WebElement frame = Utils.retryingFindAndSwitchToFrame(By // .id("iframe_packing")); } catch (Exception e) { e.printStackTrace(); AssertJUnit.fail(e.getMessage()); } } /** * 装配后修改灭菌程序,包装类型等 ***/ @Test public void assemble_modifyTousse() { try { // 点击高级视图 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("//table/tbody/tr/td/div[contains(@class, 'x-grid3-col-0')]")); // 选中第一个包 String currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); Utils.retryingFindAndClick(By .xpath("//table/tbody/tr/td/div/div[contains(@class, 'x-grid3-row-checker')]")); // 点击修改按钮 Utils.retryingFindAndClick(By .xpath("//table/tbody/tr/td/em/button[text()='修改']")); //扫描配包人和审核人 scan(); // 修改灭菌程序 WebElement element = Utils.retryingFind(By.id("sterilingType2")); String name = Utils.settings.getJSONObject("灭菌程序").getString("名称2"); if (element != null) { displayed = element.isDisplayed(); if (displayed) { element.click(); Utils.retryingFindAndClick(By .xpath("//div/div/div[contains(text(), '" + name + "')]")); } } // 修改包装类型 Utils.retryingFindAndClick(By.id("packageType2")); name = Utils.settings.getJSONObject("包装类型").getString("名称2"); Utils.retryingFindAndClick(By .xpath("//div/div/div[contains(text(), '" + name + "')]")); // 点击确定 Utils.retryingFindAndClick(By .xpath("//table/tbody/tr/td/em/button[text()='确定']")); Utils.doWait(1000); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } @AfterMethod public void after() { Utils.driver.quit(); } /** * 编辑树形表格的单元格,行、列的值均从0开始计算。 装配界面左下角的grid名称为waitPackingTreeGrid, * 左上角的grid名称为basketTreeGrid * * @param treeGridName * 表格的名字 * @param row * 单元格所在的行 * @param column * 单元格所在的列 */ private void editTreeGridCell(String treeGridName, int row, int column) { JavascriptExecutor js = (JavascriptExecutor) Utils.driver; String enterEdit = "var grid = Ext4.getCmp('" + treeGridName + "');" + "grid.getSelectionModel().select(" + row + ");" + "grid.cellEditing.startEditByPosition({row: " + row + ",column: " + column + "});"; js.executeScript(enterEdit); } /** * 省医装配扫描配包人和审核人 */ public void scan() { try { boolean displayed = false; WebElement element = Utils.retryingFind(By .cssSelector("input[name='reviewer2']")); String text = Utils.retryingFind( By.cssSelector("input[name='packer2']")).getText(); if (text.isEmpty()) { Utils.retryingFindAndSendKeys( By.cssSelector("input[name='packer2']"), Utils.settings.getJSONObject("一级供应室配包人") .getString("姓名")); Utils.doWait(1000); Utils.retryingFindAndSendKeys(By.cssSelector("input[name='packer2']"),"\n"); if (element != null) { displayed = element.isDisplayed(); if (displayed) { Utils.retryingFindAndSendKeys( By.cssSelector("input[name='reviewer2']"), Utils.settings.getJSONObject("一级供应室审核人") .getString("姓名")); Utils.doWait(1000); element.sendKeys("\n"); } } } } catch (Exception e) { e.printStackTrace(); AssertJUnit.fail(e.getMessage()); } } }