Index: ssts-selenium-test/src/test/java/test_4_1/Recyle.java =================================================================== diff -u -r18122 -r18161 --- ssts-selenium-test/src/test/java/test_4_1/Recyle.java (.../Recyle.java) (revision 18122) +++ ssts-selenium-test/src/test/java/test_4_1/Recyle.java (.../Recyle.java) (revision 18161) @@ -7,6 +7,7 @@ import java.util.List; import java.util.NoSuchElementException; +import java.util.Set; import java.util.concurrent.TimeUnit; import java.util.function.Function; @@ -18,6 +19,7 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.openqa.selenium.support.ui.FluentWait; import org.openqa.selenium.support.ui.Wait; +import org.openqa.selenium.support.ui.WebDriverWait; import org.testng.AssertJUnit; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeMethod; @@ -36,8 +38,7 @@ Utils.init(); Login login = new Login(); // 直接跳到回收界面,不用那么麻烦的点桌面回收清洗图标、然后再切换窗口 - Utils.driver.get(Utils.settings.get("服务器地址").toString() - + "/?logonType=1080p"); + Utils.driver.get(Utils.settings.get("服务器地址").toString() + "/?logonType=1080p"); login.loginAction(); } @@ -56,9 +57,7 @@ // dateNow +"')]")).click(); // 输入临床科室条码,只显示临床科室的申请单 - WebElement bodyElement = Utils.retryingFindAndSendKeys( - By.tagName("body"), Utils.settings.getJSONObject("临床科室") - .getString("条码") + "\n"); + WebElement bodyElement = Utils.retryingFindAndSendKeys(By.tagName("body"), Utils.settings.getJSONObject("临床科室").getString("条码") + "\n"); // try { // (2000); // } catch (InterruptedException e) { @@ -70,8 +69,7 @@ Utils.retryingFindAndClick(By.cssSelector(".btn-e")); - assertTrue(Utils.retryingFind(By.id("idBox")).getText() - .contains("还有部分器械包未装入容器,不能保存。")); + assertTrue(Utils.retryingFind(By.id("idBox")).getText().contains("还有部分器械包未装入容器,不能保存。")); } catch (Exception e) { e.printStackTrace(); AssertJUnit.fail(e.getMessage()); @@ -84,22 +82,18 @@ @Test public void recyle_oneSupplyRoom() { try { - String barcode = Utils.settings.getJSONObject("临床科室").getString( - "条码"); + String barcode = Utils.settings.getJSONObject("临床科室").getString("条码"); // 输入临床科室条码,只显示临床科室的申请单 Utils.retryingFindAndSendKeys(By.tagName("body"), barcode + "\n"); - Utils.retryingFindClickFirstCellOfTable(By - .id("awaitForRecycleTable")); + Utils.retryingFindClickFirstCellOfTable(By.id("awaitForRecycleTable")); // 获取器械包的器械(材料)清单表格 WebElement tousseItemTable = scanRecycleUserBarcode(); - tousseItemTable.sendKeys(Utils.settings.getJSONObject("一级供应室清洗篮筐4") - .getString("条码") + "\n"); + tousseItemTable.sendKeys(Utils.settings.getJSONObject("一级供应室清洗篮筐4").getString("条码") + "\n"); dialogWindowClose(); - List Buttons = tousseItemTable.findElements(By - .xpath("//tbody/tr/td/a[contains(text(), '-')]")); + List Buttons = tousseItemTable.findElements(By.xpath("//tbody/tr/td/a[contains(text(), '-')]")); for (WebElement Button : Buttons) { Button.click(); boolean displayed = false; @@ -112,18 +106,13 @@ } } tousseItemTable = Utils.retryingFind(By.id("tousseItemTable")); - List addButtons = tousseItemTable.findElements(By - .cssSelector(".btn-a")); + List addButtons = tousseItemTable.findElements(By.cssSelector(".btn-a")); for (WebElement addButton : addButtons) { addButton.click(); } Utils.retryingFindAndClick(By.cssSelector("input[value='保存并新建']")); - for (String winHandle : Utils.driver.getWindowHandles()) { - Utils.driver.switchTo().window(winHandle); - } - } catch (Exception e) { e.printStackTrace(); AssertJUnit.fail(e.getMessage()); @@ -136,58 +125,39 @@ @Test public void recyle_SecondSupplyRoom() { try { - String barcode = Utils.settings.getJSONObject("临床科室").getString( - "条码"); + String barcode = Utils.settings.getJSONObject("临床科室").getString("条码"); // 输入临床科室条码,只显示临床科室的申请单 Utils.retryingFindAndSendKeys(By.tagName("body"), barcode + "\n"); WebElement element = Utils.retryingFind(By.id("tousseItemTable")); if (element == null) { - Utils.retryingFindClickFirstCellOfTable(By - .id("awaitForRecycleTable")); + Utils.retryingFindClickFirstCellOfTable(By.id("awaitForRecycleTable")); } // 获取器械包的器械(材料)清单表格 - Wait wait = new FluentWait(Utils.driver) - .withTimeout(5000, TimeUnit.MILLISECONDS) - .pollingEvery(100, TimeUnit.MILLISECONDS) - .ignoring(NoSuchElementException.class) - .ignoring(StaleElementReferenceException.class); - WebElement tousseItemTable = wait - .until(new Function() { - public WebElement apply(WebDriver driver) { - return Utils.retryingFind(By.id("tousseItemTable")); - } - }); + Wait wait = new FluentWait(Utils.driver).withTimeout(5000, TimeUnit.MILLISECONDS).pollingEvery(100, TimeUnit.MILLISECONDS).ignoring( + NoSuchElementException.class).ignoring(StaleElementReferenceException.class); + WebElement tousseItemTable = wait.until(new Function() { + public WebElement apply(WebDriver driver) { + return Utils.retryingFind(By.id("tousseItemTable")); + } + }); // 扫描回收人条码 - String name = Utils.settings.getJSONObject("二级供应室用户").getString( - "条码"); - tousseItemTable = Utils.retryingFindAndSendKeys( - By.id("tousseItemTable"), name + "\n"); + String name = Utils.settings.getJSONObject("二级供应室用户").getString("条码"); + tousseItemTable = Utils.retryingFindAndSendKeys(By.id("tousseItemTable"), name + "\n"); // 断言回收人的姓名填写成功 - wait.until(ExpectedConditions.attributeContains(By - .id("recyclingUser"), "value", Utils.settings - .getJSONObject("二级供应室用户").getString("姓名"))); + wait.until(ExpectedConditions.attributeContains(By.id("recyclingUser"), "value", Utils.settings.getJSONObject("二级供应室用户").getString("姓名"))); name = Utils.settings.getJSONObject("二级供应室用户").getString("条码"); // 扫描清点人条码 // 继续通过retryFind方式查找table,然后点击,提高可靠性 - tousseItemTable = Utils.retryingFindAndSendKeys( - By.id("tousseItemTable"), name + "\n"); + tousseItemTable = Utils.retryingFindAndSendKeys(By.id("tousseItemTable"), name + "\n"); // 断言清点人的姓名填写成功 - wait.until(ExpectedConditions.attributeContains(By.id("operator"), - "value", - Utils.settings.getJSONObject("二级供应室用户").getString("姓名"))); - tousseItemTable.sendKeys(Utils.settings.getJSONObject("二级供应室清洗篮筐1") - .getString("条码") + "\n"); + wait.until(ExpectedConditions.attributeContains(By.id("operator"), "value", Utils.settings.getJSONObject("二级供应室用户").getString("姓名"))); + tousseItemTable.sendKeys(Utils.settings.getJSONObject("二级供应室清洗篮筐1").getString("条码") + "\n"); dialogWindowClose(); - List addButtons = tousseItemTable.findElements(By - .cssSelector(".btn-a")); + List addButtons = tousseItemTable.findElements(By.cssSelector(".btn-a")); for (WebElement addButton : addButtons) { addButton.click(); } - Utils.retryingFindAndClick(By.cssSelector(".btn-e")); - for (String winHandle : Utils.driver.getWindowHandles()) { - Utils.driver.switchTo().window(winHandle); - } - + Utils.retryingFindAndClick(By.id("saveBtn")); } catch (Exception e) { e.printStackTrace(); AssertJUnit.fail(e.getMessage()); @@ -200,60 +170,46 @@ @Test public void recyle_oneSupplyRoomSignboard() { try { - String barcode = Utils.settings.getJSONObject("临床科室").getString( - "条码"); + Utils.doWait(1500); + String barcode = Utils.settings.getJSONObject("临床科室").getString("条码"); // 输入临床科室条码,只显示临床科室的申请单 Utils.retryingFindAndSendKeys(By.tagName("body"), barcode + "\n"); - Utils.retryingFindClickFirstCellOfTable(By - .id("awaitForRecycleTable")); + Utils.retryingFindClickFirstCellOfTable(By.id("awaitForRecycleTable")); // 获取器械包的器械(材料)清单表格 WebElement tousseItemTable = scanRecycleUserBarcode(); - tousseItemTable.sendKeys(Utils.settings.getJSONObject("一级供应室清洗篮筐4") - .getString("条码") + "\n"); + tousseItemTable.sendKeys(Utils.settings.getJSONObject("一级供应室清洗篮筐4").getString("条码") + "\n"); dialogWindowClose(); Utils.retryingFindAndClick(By.linkText("添加器械包")); Utils.driver.switchTo().defaultContent(); - WebElement frame = Utils.retryingFindAndSwitchToFrame(By - .id("xubox_iframe")); + WebElement frame = Utils.retryingFindAndSwitchToFrame(By.tagName("iframe")); - Utils.retryingFindAndClick(By.id(Utils.settings.getJSONObject( - "回收查询").getString("按钮2"))); + Utils.retryingFindAndClick(By.id(Utils.settings.getJSONObject("回收查询").getString("按钮2"))); - Utils.retryingFindAndClick(By.id(Utils.settings.getJSONObject( - "回收查询").getString("按钮2"))); + Utils.retryingFindAndClick(By.id(Utils.settings.getJSONObject("回收查询").getString("按钮2"))); - Utils.retryingFindAndClick(By.linkText(Utils.settings - .getJSONObject("一级供应室器械包2").getString("名称"))); + Utils.retryingFindAndClick(By.linkText(Utils.settings.getJSONObject("一级供应室器械包2").getString("名称"))); String recyclingFormWindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(recyclingFormWindowhandle); - tousseItemTable=Utils.retryingFind(By.id("tousseItemTable")); - List addButtons = tousseItemTable.findElements(By - .cssSelector(".btn-a")); - Utils.retryingFindAndClick(By - .xpath("//tbody/tr/td/a[contains(text(), '+')]")); + tousseItemTable = Utils.retryingFind(By.id("tousseItemTable")); + List addButtons = tousseItemTable.findElements(By.cssSelector(".btn-a")); + Utils.retryingFindAndClick(By.xpath("//tbody/tr/td/a[contains(text(), '+')]")); for (WebElement addButton : addButtons) { addButton.click(); } - tousseItemTable.sendKeys(Utils.settings.getJSONObject("一级供应室清洗篮筐1") - .getString("条码") + "\n"); + tousseItemTable.sendKeys(Utils.settings.getJSONObject("一级供应室清洗篮筐1").getString("条码") + "\n"); dialogWindowClose(); // 扫描标识牌条码回收入筐 - tousseItemTable.sendKeys(Utils.settings.getJSONObject("一级供应室器械包1") - .getString("标识牌条码1") + "\n"); + tousseItemTable.sendKeys(Utils.settings.getJSONObject("一级供应室器械包1").getString("标识牌条码1") + "\n"); - Utils.retryingFindAndClick(By.cssSelector(".btn-e")); - - for (String winHandle : Utils.driver.getWindowHandles()) { - Utils.driver.switchTo().window(winHandle); - } + Utils.retryingFindAndClick(By.id("saveBtn")); Utils.doWait(1000); } catch (Exception e) { e.printStackTrace(); @@ -270,16 +226,13 @@ boolean displayed = false; // 输入临床科室条码,只显示临床科室的申请单 - WebElement bodyElement = Utils.retryingFindAndSendKeys( - By.tagName("body"), Utils.settings.getJSONObject("临床科室") - .getString("条码") + "\n"); + WebElement bodyElement = Utils.retryingFindAndSendKeys(By.tagName("body"), Utils.settings.getJSONObject("临床科室").getString("条码") + "\n"); // displayed = Utils.retryingFindClickFirstCellOfTable(By // .id("awaitForRecycleTable")); WebElement element = Utils.retryingFind(By.id("tousseItemTable")); if (element == null) { - Utils.retryingFindClickFirstCellOfTable(By - .id("awaitForRecycleTable")); + Utils.retryingFindClickFirstCellOfTable(By.id("awaitForRecycleTable")); } else { Utils.retryingFind(By.id("tousseItemTable")); @@ -289,24 +242,18 @@ Utils.driver.switchTo().window(recyclingFormWindowhandle); WebElement tousseItemTable = scanRecycleUserBarcode(); - tousseItemTable.sendKeys(Utils.settings.getJSONObject("一级供应室清洗篮筐4") - .getString("条码") + "\n"); + tousseItemTable.sendKeys(Utils.settings.getJSONObject("一级供应室清洗篮筐4").getString("条码") + "\n"); dialogWindowClose(); - tousseItemTable=Utils.retryingFind(By.id("tousseItemTable")); - List addButtons = tousseItemTable.findElements(By - .cssSelector(".btn-a")); + tousseItemTable = Utils.retryingFind(By.id("tousseItemTable")); + List addButtons = tousseItemTable.findElements(By.cssSelector(".btn-a")); for (WebElement addButton : addButtons) { addButton.click(); } - Utils.retryingFindAndClick(By.cssSelector(".btn-e")); + Utils.retryingFindAndClick(By.id("saveBtn")); - for (String winHandle : Utils.driver.getWindowHandles()) { - Utils.driver.switchTo().window(winHandle); - } - } catch (Exception e) { e.printStackTrace(); AssertJUnit.fail(e.getMessage()); @@ -321,26 +268,19 @@ try { // 获取器械包的器械(材料)清单表格 - Wait wait = new FluentWait(Utils.driver) - .withTimeout(5000, TimeUnit.MILLISECONDS) - .pollingEvery(100, TimeUnit.MILLISECONDS) - .ignoring(NoSuchElementException.class) - .ignoring(StaleElementReferenceException.class); - WebElement tousseItemTable = wait - .until(new Function() { - public WebElement apply(WebDriver driver) { - return Utils.retryingFind(By.id("tousseItemTable")); - } - }); - tousseItemTable.sendKeys(Utils.settings.getJSONObject("一级供应室清洗篮筐1") - .getString("条码") + "\n"); + Wait wait = new FluentWait(Utils.driver).withTimeout(5000, TimeUnit.MILLISECONDS).pollingEvery(100, TimeUnit.MILLISECONDS).ignoring( + NoSuchElementException.class).ignoring(StaleElementReferenceException.class); + WebElement tousseItemTable = wait.until(new Function() { + public WebElement apply(WebDriver driver) { + return Utils.retryingFind(By.id("tousseItemTable")); + } + }); + tousseItemTable.sendKeys(Utils.settings.getJSONObject("一级供应室清洗篮筐1").getString("条码") + "\n"); // 增加休眠,避免扫描后提示条码不符合规范的问题 - tousseItemTable.sendKeys(Utils.settings.getJSONObject("一级供应室清洗篮筐3") - .getString("条码") + "\n"); + tousseItemTable.sendKeys(Utils.settings.getJSONObject("一级供应室清洗篮筐3").getString("条码") + "\n"); // 根据cssClass获取入筐按钮集合 - List addButtons = tousseItemTable.findElements(By - .cssSelector(".btn-a")); + List addButtons = tousseItemTable.findElements(By.cssSelector(".btn-a")); // 序号,回收数量输入框的名称后缀 int index = addButtons.size(); for (WebElement addButton : addButtons) { @@ -349,18 +289,15 @@ Utils.retryingFindAndClick(By.id("recycleAmount" + index)); // 弹出了数量输入的对话框 - WebElement frame = Utils.retryingFindAndSwitchToFrame(By - .id("xubox_iframe")); + WebElement frame = Utils.retryingFindAndSwitchToFrame(By.tagName("iframe")); Utils.retryingFindAndClick(By.linkText("1")); Utils.retryingFindAndClick(By.cssSelector(".btn-a")); Utils.driver.switchTo().defaultContent(); addButton.click(); } - Utils.retryingFindAndClick(By.cssSelector(".btn-e")); - for (String winHandle : Utils.driver.getWindowHandles()) { - Utils.driver.switchTo().window(winHandle); - } + Utils.retryingFindAndClick(By.id("saveBtn")); + } catch (Exception e) { e.printStackTrace(); AssertJUnit.fail(e.getMessage()); @@ -374,22 +311,17 @@ public void recyle_userRecordApply() { try { // 输入临床科室条码,只显示临床科室的申请单 - Utils.retryingFindAndSendKeys(By.tagName("body"), Utils.settings - .getJSONObject("临床科室").getString("条码") + "\n"); + Utils.retryingFindAndSendKeys(By.tagName("body"), Utils.settings.getJSONObject("临床科室").getString("条码") + "\n"); WebElement tousseItemTable = scanRecycleUserBarcode(); - tousseItemTable.sendKeys(Utils.settings.getJSONObject("一级供应室清洗篮筐3") - .getString("条码") + "\n"); + tousseItemTable.sendKeys(Utils.settings.getJSONObject("一级供应室清洗篮筐3").getString("条码") + "\n"); // 根据cssClass获取入筐按钮集合 - List addButtons = tousseItemTable.findElements(By - .cssSelector(".btn-a")); + List addButtons = tousseItemTable.findElements(By.cssSelector(".btn-a")); for (WebElement addButton : addButtons) { addButton.click(); } - Utils.retryingFindAndClick(By.cssSelector(".btn-e")); - for (String winHandle : Utils.driver.getWindowHandles()) { - Utils.driver.switchTo().window(winHandle); - } + Utils.retryingFindAndClick(By.id("saveBtn")); + } catch (Exception e) { e.printStackTrace(); AssertJUnit.fail(e.getMessage()); @@ -404,29 +336,22 @@ try { // 获取body对象,sendKeys更加可靠。actions.click()的方式在win10,IE11下不可靠 // 输入临床科室条码,只显示临床科室的申请单 - WebElement bodyElement = Utils.retryingFindAndSendKeys( - By.tagName("body"), Utils.settings.getJSONObject("临床科室") - .getString("条码") + "\n"); + WebElement bodyElement = Utils.retryingFindAndSendKeys(By.tagName("body"), Utils.settings.getJSONObject("临床科室").getString("条码") + "\n"); - Utils.retryingFindClickFirstCellOfTable(By - .id("awaitForRecycleTable")); + Utils.retryingFindClickFirstCellOfTable(By.id("awaitForRecycleTable")); String recyclingFormWindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(recyclingFormWindowhandle); WebElement tousseItemTable = scanRecycleUserBarcode(); - tousseItemTable.sendKeys(Utils.settings.getJSONObject("一级供应室清洗篮筐3") - .getString("条码") + "\n"); + tousseItemTable.sendKeys(Utils.settings.getJSONObject("一级供应室清洗篮筐3").getString("条码") + "\n"); // 根据cssClass获取入筐按钮集合 - List addButtons = tousseItemTable.findElements(By - .cssSelector(".btn-a")); + List addButtons = tousseItemTable.findElements(By.cssSelector(".btn-a")); for (WebElement addButton : addButtons) { addButton.click(); } - Utils.retryingFindAndClick(By.cssSelector(".btn-e")); - for (String winHandle : Utils.driver.getWindowHandles()) { - Utils.driver.switchTo().window(winHandle); - } + Utils.retryingFindAndClick(By.id("saveBtn")); + } catch (Exception e) { e.printStackTrace(); AssertJUnit.fail(e.getMessage()); @@ -444,82 +369,63 @@ Utils.retryingFindAndClick(By.linkText("添加器械包")); Utils.driver.switchTo().defaultContent(); - WebElement frame = Utils.retryingFindAndSwitchToFrame(By - .id("xubox_iframe")); + WebElement frame = Utils.retryingFindAndSwitchToFrame(By.tagName("iframe")); - Utils.retryingFindAndClick(By.id(Utils.settings.getJSONObject( - "回收查询").getString("按钮1"))); + Utils.retryingFindAndClick(By.id(Utils.settings.getJSONObject("回收查询").getString("按钮1"))); - Utils.retryingFindAndClick(By.id(Utils.settings.getJSONObject( - "回收查询").getString("按钮2"))); + Utils.retryingFindAndClick(By.id(Utils.settings.getJSONObject("回收查询").getString("按钮2"))); - WebElement findElement = Utils.retryingFindAndClick(By - .linkText(Utils.settings.getJSONObject("一级供应室器械包1") - .getString("名称"))); + WebElement findElement = Utils.retryingFindAndClick(By.linkText(Utils.settings.getJSONObject("一级供应室器械包1").getString("名称"))); String recyclingFormWindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(recyclingFormWindowhandle); - Wait wait = new FluentWait(Utils.driver) - .withTimeout(5000, TimeUnit.MILLISECONDS) - .pollingEvery(100, TimeUnit.MILLISECONDS) - .ignoring(NoSuchElementException.class) - .ignoring(StaleElementReferenceException.class); - WebElement tousseItemTable = wait - .until(new Function() { - public WebElement apply(WebDriver driver) { - return Utils.retryingFind(By.id("tousseItemTable")); - } - }); + Wait wait = new FluentWait(Utils.driver).withTimeout(5000, TimeUnit.MILLISECONDS).pollingEvery(100, TimeUnit.MILLISECONDS).ignoring( + NoSuchElementException.class).ignoring(StaleElementReferenceException.class); + WebElement tousseItemTable = wait.until(new Function() { + public WebElement apply(WebDriver driver) { + return Utils.retryingFind(By.id("tousseItemTable")); + } + }); // 扫描科室条码 - tousseItemTable.sendKeys(Utils.settings.getJSONObject("临床科室") - .getString("条码") + "\n"); + tousseItemTable.sendKeys(Utils.settings.getJSONObject("临床科室").getString("条码") + "\n"); // 扫描篮筐条码 - tousseItemTable.sendKeys(Utils.settings.getJSONObject("一级供应室清洗篮筐1") - .getString("条码") + "\n"); + tousseItemTable.sendKeys(Utils.settings.getJSONObject("一级供应室清洗篮筐1").getString("条码") + "\n"); // 扫描篮筐条码 - tousseItemTable.sendKeys(Utils.settings.getJSONObject("一级供应室清洗篮筐2") - .getString("条码") + "\n"); + tousseItemTable.sendKeys(Utils.settings.getJSONObject("一级供应室清洗篮筐2").getString("条码") + "\n"); // 回收入筐增加丢失、报损 - List addButtons = tousseItemTable.findElements(By - .cssSelector(".btn-a")); + List addButtons = tousseItemTable.findElements(By.cssSelector(".btn-a")); for (WebElement addButton : addButtons) { Utils.retryingFindAndClick(By.cssSelector(".btn-b")); - frame = Utils.retryingFindAndSwitchToFrame(By - .id("xubox_iframe")); + frame = Utils.retryingFindAndSwitchToFrame(By.tagName("iframe")); Utils.retryingFindAndClick(By.id("recyclingErrorTable")); - Utils.retryingFindAndClick(By - .xpath("//tbody/tr/td/a[contains(text(), '+')]")); - Utils.retryingFindAndClick(By - .xpath("//tbody/tr/td/a[contains(text(), '确定')]")); + Utils.retryingFindAndClick(By.xpath("//tbody/tr/td/a[contains(text(), '+')]")); + Utils.retryingFindAndClick(By.xpath("//tbody/tr/td/a[contains(text(), '确定')]")); Utils.driver.switchTo().defaultContent(); Utils.retryingFindAndClick(By.cssSelector(".btn-c")); - frame = Utils.retryingFindAndSwitchToFrame(By - .id("xubox_iframe")); + frame = Utils.retryingFindAndSwitchToFrame(By.tagName("iframe")); Utils.retryingFindAndClick(By.id("recyclingDamageForm")); Utils.retryingFindAndClick(By.cssSelector("a[class=add]")); - Utils.retryingFindAndClick(By - .xpath("//tbody/tr/td/a[contains(text(), '确定')]")); + Utils.retryingFindAndClick(By.xpath("//tbody/tr/td/a[contains(text(), '确定')]")); Utils.driver.switchTo().defaultContent(); addButton.click(); } Utils.retryingFindAndClick(By.cssSelector(".divStyle")); - frame = Utils.retryingFindAndSwitchToFrame(By.id("xubox_iframe")); + frame = Utils.retryingFindAndSwitchToFrame(By.tagName("iframe")); Utils.retryingFindAndClick(By.id("recyclingErrorTable")); - Utils.retryingFindAndClick(By - .xpath("//tbody/tr/td/a[contains(text(), '+')]")); + Utils.retryingFindAndClick(By.xpath("//tbody/tr/td/a[contains(text(), '+')]")); Utils.retryingFindAndClick(By.cssSelector("a[class='submit']")); Utils.driver.switchTo().defaultContent(); - Utils.retryingFindAndClick(By.cssSelector(".btn-e")); + Utils.retryingFindAndClick(By.id("saveBtn")); } catch (Exception e) { e.printStackTrace(); @@ -539,29 +445,21 @@ WebElement recycleForm = scanRecycleUserBarcode(); // 扫描科室条码 - Utils.retryingFindAndSendKeys(By.id("depart"), Utils.settings - .getJSONObject("临床科室").getString("条码") + "\n"); + Utils.retryingFindAndSendKeys(By.id("depart"), Utils.settings.getJSONObject("临床科室").getString("条码") + "\n"); // Utils.retryingFindAndSendKeys(By.id("tousseItemTable"), // Utils.settings.getJSONObject("临床科室").getString("条码") + "\n"); - Wait wait = new FluentWait(Utils.driver) - .withTimeout(5000, TimeUnit.MILLISECONDS) - .pollingEvery(250, TimeUnit.MILLISECONDS) - .ignoring(NoSuchElementException.class) - .ignoring(StaleElementReferenceException.class) - .ignoring(NullPointerException.class); + Wait wait = new FluentWait(Utils.driver).withTimeout(5000, TimeUnit.MILLISECONDS).pollingEvery(250, TimeUnit.MILLISECONDS).ignoring( + NoSuchElementException.class).ignoring(StaleElementReferenceException.class).ignoring(NullPointerException.class); // 断言临床科室的填写成功 - wait.until(ExpectedConditions.attributeContains(By.id("depart"), - "value", - Utils.settings.getJSONObject("临床科室").getString("名称"))); + wait.until(ExpectedConditions.attributeContains(By.id("depart"), "value", Utils.settings.getJSONObject("临床科室").getString("名称"))); boolean displayed = false; // Utils.retryingFindAndSendKeys(By.id("tousseItemTable"), // Utils.settings.getJSONObject("一级供应室清洗篮筐2").getString("条码") + // "\n"); - Utils.retryingFindAndSendKeys(By.id("operator"), Utils.settings - .getJSONObject("一级供应室清洗篮筐2").getString("条码") + "\n"); + Utils.retryingFindAndSendKeys(By.id("operator"), Utils.settings.getJSONObject("一级供应室清洗篮筐2").getString("条码") + "\n"); dialogWindowClose(); // 扫描标识牌条码回收入筐 @@ -570,12 +468,11 @@ // Utils.settings.getJSONObject("一级供应室器械包1").getString( // "标识牌条码2") // + "\n"); - Utils.retryingFindAndSendKeys(By.id("depart"), Utils.settings - .getJSONObject("一级供应室器械包1").getString("标识牌条码2") + "\n"); + Utils.retryingFindAndSendKeys(By.id("depart"), Utils.settings.getJSONObject("一级供应室器械包1").getString("标识牌条码2") + "\n"); // 增加丢失、报损 Utils.retryingFindAndClick(By.id("recyclingErrorButton0")); - Utils.retryingFindAndSwitchToFrame(By.id("xubox_iframe")); + Utils.retryingFindAndSwitchToFrame(By.tagName("iframe")); Utils.retryingFindAndClick(By.id("recyclingErrorTable")); // 点击第1行的+号按钮 @@ -584,7 +481,7 @@ Utils.driver.switchTo().defaultContent(); Utils.retryingFindAndClick(By.id("recyclingDamageButton0")); - Utils.retryingFindAndSwitchToFrame(By.id("xubox_iframe")); + Utils.retryingFindAndSwitchToFrame(By.tagName("iframe")); Utils.retryingFindAndClick(By.id("recyclingDamageForm")); Utils.retryingFindAndClick(By.id("addButton0")); @@ -593,18 +490,17 @@ // 加急 Utils.driver.switchTo().defaultContent(); Utils.retryingFindAndClick(By.id("urgentAmountDiv0")); - Utils.retryingFindAndSwitchToFrame(By.id("xubox_iframe")); + Utils.retryingFindAndSwitchToFrame(By.tagName("iframe")); Utils.retryingFindAndClick(By.id("recyclingErrorTable")); Utils.retryingFindAndClick(By.id("addButton0")); Utils.retryingFindAndClick(By.id("urgentSubmitButton")); Utils.driver.switchTo().defaultContent(); // 扫描篮筐条码 - recycleForm.sendKeys(Utils.settings.getJSONObject("一级供应室清洗篮筐3") - .getString("条码") + "\n"); + recycleForm.sendKeys(Utils.settings.getJSONObject("一级供应室清洗篮筐3").getString("条码") + "\n"); dialogWindowClose(); Utils.retryingFindAndClick(By.cssSelector(".btn-a")); - Utils.retryingFindAndClick(By.cssSelector(".btn-e")); + Utils.retryingFindAndClick(By.id("saveBtn")); } catch (Exception e) { e.printStackTrace(); @@ -618,40 +514,34 @@ @Test public void recyle_changeBasket() { try { +// Utils.retryingFindAndClick(By.id("addRecycleRecordBtn")); Utils.waitPageLoaded(); - // Utils.retryingFindAndClick(By.id("addRecycleRecordBtn")); + Utils.waitUntilUrlChange(Utils.settings.get("服务器地址").toString() + "/disinfectsystem/touchScreen/recycle/recycleForTouchScreen.jsp?resolution=1980", 8); + Utils.doWait(2000); WebElement recycleForm = scanRecycleUserBarcode(); // 扫描科室条码 - recycleForm.sendKeys(Utils.settings.getJSONObject("临床科室") - .getString("条码") + "\n"); + recycleForm.sendKeys(Utils.settings.getJSONObject("临床科室").getString("条码") + "\n"); dialogWindowClose(); Utils.retryingFindAndClick(By.id("add-bao")); Utils.driver.switchTo().defaultContent(); - WebElement frame = Utils.retryingFindAndSwitchToFrame(By - .id("xubox_iframe")); + WebElement frame = Utils.retryingFindAndSwitchToFrame(By.tagName("iframe")); - Utils.retryingFindAndClick(By.id(Utils.settings.getJSONObject( - "回收查询").getString("按钮2"))); + Utils.retryingFindAndClick(By.id(Utils.settings.getJSONObject("回收查询").getString("按钮2"))); - Utils.retryingFindAndClick(By.id(Utils.settings.getJSONObject( - "回收查询").getString("按钮2"))); + Utils.retryingFindAndClick(By.id(Utils.settings.getJSONObject("回收查询").getString("按钮2"))); - Utils.retryingFindAndClick(By.linkText(Utils.settings - .getJSONObject("一级供应室器械包2").getString("名称"))); + Utils.retryingFindAndClick(By.linkText(Utils.settings.getJSONObject("一级供应室器械包2").getString("名称"))); String recyclingFormWindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(recyclingFormWindowhandle); - recycleForm.sendKeys(Utils.settings.getJSONObject("一级供应室清洗篮筐1") - .getString("条码") + "\n"); + recycleForm.sendKeys(Utils.settings.getJSONObject("一级供应室清洗篮筐1").getString("条码") + "\n"); dialogWindowClose(); - recycleForm=Utils.retryingFind(By.id("tousseItemTable")); - List addButtons = recycleForm.findElements(By - .cssSelector(".btn-a")); - Utils.retryingFindAndClick(By - .xpath("//tbody/tr/td/a[contains(text(), '+')]")); + recycleForm = Utils.retryingFind(By.id("tousseItemTable")); + List addButtons = recycleForm.findElements(By.cssSelector(".btn-a")); + Utils.retryingFindAndClick(By.xpath("//tbody/tr/td/a[contains(text(), '+')]")); for (WebElement addButton : addButtons) { addButton.click(); @@ -665,28 +555,23 @@ Utils.retryingFindAndClick(By.id("tr0")); - Utils.retryingFindClickFirstCellOfTable(By - .id("recyclingRecordTable")); + Utils.retryingFindClickFirstCellOfTable(By.id("recyclingRecordTable")); - Utils.retryingFindAndClick(By.id("B" - + Utils.settings.getJSONObject("一级供应室清洗篮筐1") - .getString("条码"))); + Utils.retryingFindAndClick(By.id("B" + Utils.settings.getJSONObject("一级供应室清洗篮筐1").getString("条码"))); dialogWindowClose(); recycleForm = scanRecycleUserBarcode(); - recycleForm.sendKeys(Utils.settings.getJSONObject("一级供应室清洗篮筐4") - .getString("条码") + "\n"); + recycleForm.sendKeys(Utils.settings.getJSONObject("一级供应室清洗篮筐4").getString("条码") + "\n"); dialogWindowClose(); - recycleForm=Utils.retryingFind(By.id("tousseItemTable")); - List addButtons2 = recycleForm.findElements(By - .cssSelector(".btn-a")); + recycleForm = Utils.retryingFind(By.id("tousseItemTable")); + List addButtons2 = recycleForm.findElements(By.cssSelector(".btn-a")); for (WebElement addButton : addButtons2) { addButton.click(); } // 增加材料丢失 Utils.retryingFindAndClick(By.id("recyclingErrorButton0")); - Utils.retryingFindAndSwitchToFrame(By.id("xubox_iframe")); + Utils.retryingFindAndSwitchToFrame(By.tagName("iframe")); Utils.retryingFindAndClick(By.id("recyclingErrorTable")); // 点击第1行的+号按钮 @@ -709,28 +594,21 @@ try { Utils.retryingFindAndClick(By.id("enterpriseView")); - WebElement frame = Utils.retryingFindAndSwitchToFrame(By - .id("iframe_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(), '回收清点')]")); Utils.retryingFindAndClick(By.cssSelector("a[target='mainFrame']")); frame = Utils.retryingFindAndSwitchToFrame(By.id("mainFrame")); - Utils.retryingFindAndClick(By - .xpath("//tbody/tr/td/div[contains(text(), '待接收')]")); + Utils.retryingFindAndClick(By.xpath("//tbody/tr/td/div[contains(text(), '待接收')]")); Utils.retryingFindAndClick(By.id("editTbar")); String currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); - Utils.retryingFindAndSendKeys( - By.cssSelector("input[name='basketBarcode']"), - Utils.settings.getJSONObject("二级供应室清洗篮筐1").getString("条码") - + "\n"); + Utils.retryingFindAndSendKeys(By.cssSelector("input[name='basketBarcode']"), Utils.settings.getJSONObject("二级供应室清洗篮筐1").getString("条码") + "\n"); - Utils.retryingFindAndClick(By - .xpath("//span[contains(text(), '确认接收')]")); + Utils.retryingFindAndClick(By.xpath("//span[contains(text(), '确认接收')]")); } catch (Exception e) { e.printStackTrace(); AssertJUnit.fail(e.getMessage()); @@ -754,26 +632,23 @@ if (displayed) { } else { - Utils.retryingFindClickFirstCellOfTable(By - .id("awaitForRecycleTable")); + Utils.retryingFindClickFirstCellOfTable(By.id("awaitForRecycleTable")); } // 获取器械包的器械(材料)清单表格 WebElement tousseItemTable = scanRecycleUserBarcode(); - tousseItemTable.sendKeys(Utils.settings.getJSONObject("一级供应室清洗篮筐4") - .getString("条码") + "\n"); + tousseItemTable.sendKeys(Utils.settings.getJSONObject("一级供应室清洗篮筐4").getString("条码") + "\n"); Utils.retryingFindAndClick(By.id("showTousseName0")); Utils.driver.switchTo().defaultContent(); - WebElement frame = Utils.retryingFindAndSwitchToFrame(By - .id("xubox_iframe")); + WebElement frame = Utils.retryingFindAndSwitchToFrame(By.tagName("iframe")); Utils.retryingFindAndClick(By.id("includeImplant1")); Utils.retryingFindAndClick(By.id("amount1")); - Utils.retryingFindAndSwitchToFrame(By.id("xubox_iframe")); + Utils.retryingFindAndSwitchToFrame(By.tagName("iframe")); a = (int) (Math.random() * 8 + 1) + ""; Thread.sleep(500); @@ -783,30 +658,26 @@ Utils.retryingFindAndClick(By.id("okButton")); Utils.driver.switchTo().defaultContent(); - frame = Utils.retryingFindAndSwitchToFrame(By.id("xubox_iframe")); + frame = Utils.retryingFindAndSwitchToFrame(By.tagName("iframe")); Utils.retryingFindAndClick(By.id("ftDefinitionSubmitButton")); - Wait wait = new FluentWait(Utils.driver) - .withTimeout(5000, TimeUnit.MILLISECONDS) - .pollingEvery(250, TimeUnit.MILLISECONDS) - .ignoring(NoSuchElementException.class) - .ignoring(StaleElementReferenceException.class); + Wait wait = new FluentWait(Utils.driver).withTimeout(5000, TimeUnit.MILLISECONDS).pollingEvery(250, TimeUnit.MILLISECONDS).ignoring( + NoSuchElementException.class).ignoring(StaleElementReferenceException.class); wait.until(ExpectedConditions.alertIsPresent()); Alert alertBox = Utils.driver.switchTo().alert(); alertBox.accept(); String recyclingFormWindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(recyclingFormWindowhandle); - tousseItemTable=Utils.retryingFind(By.id("tousseItemTable")); - List addButtons = tousseItemTable.findElements(By - .cssSelector(".btn-a")); + tousseItemTable = Utils.retryingFind(By.id("tousseItemTable")); + List addButtons = tousseItemTable.findElements(By.cssSelector(".btn-a")); for (WebElement addButton : addButtons) { addButton.click(); } - Utils.retryingFindAndClick(By.cssSelector(".btn-e")); + Utils.retryingFindAndClick(By.id("saveBtn")); Thread.sleep(1500); } catch (Exception e) { System.out.println("异常信息:"); @@ -821,59 +692,49 @@ @Test public void recyle_Foreign_edit() { try { - String barcode = Utils.settings.getJSONObject("临床科室").getString( - "条码"); + String barcode = Utils.settings.getJSONObject("临床科室").getString("条码"); // 输入临床科室条码,只显示临床科室的申请单 Utils.retryingFindAndSendKeys(By.tagName("body"), barcode + "\n"); - Utils.retryingFindClickFirstCellOfTable(By - .id("awaitForRecycleTable")); + Utils.retryingFindClickFirstCellOfTable(By.id("awaitForRecycleTable")); WebElement tousseItemTable = scanRecycleUserBarcode(); - Utils.retryingFindAndSendKeys(By.id("tousseItemTable"), - Utils.settings.getJSONObject("一级供应室清洗篮筐4").getString("条码") - + "\n"); + Utils.retryingFindAndSendKeys(By.id("tousseItemTable"), Utils.settings.getJSONObject("一级供应室清洗篮筐4").getString("条码") + "\n"); dialogWindowClose(); Utils.retryingFindAndClick(By.id("showTousseName0")); Utils.driver.switchTo().defaultContent(); - WebElement frame = Utils.retryingFindAndSwitchToFrame(By - .id("xubox_iframe")); + WebElement frame = Utils.retryingFindAndSwitchToFrame(By.tagName("iframe")); Utils.retryingFindAndClick(By.id("amount1")); - WebElement amountFrame = Utils.retryingFindAndSwitchToFrame(By - .id("xubox_iframe")); + WebElement amountFrame = Utils.retryingFindAndSwitchToFrame(By.tagName("iframe")); String a = (int) (Math.random() * 8 + 1) + ""; Thread.sleep(500); Utils.retryingFindAndClick(By.id("button" + a)); Utils.retryingFindAndClick(By.id("button5")); Utils.retryingFindAndClick(By.id("okButton")); Utils.driver.switchTo().defaultContent(); - frame = Utils.retryingFindAndSwitchToFrame(By.id("xubox_iframe")); + frame = Utils.retryingFindAndSwitchToFrame(By.tagName("iframe")); Utils.retryingFindAndClick(By.id("ftDefinitionSubmitButton")); - Wait wait = new FluentWait(Utils.driver) - .withTimeout(5000, TimeUnit.MILLISECONDS) - .pollingEvery(250, TimeUnit.MILLISECONDS) - .ignoring(NoSuchElementException.class) - .ignoring(StaleElementReferenceException.class); + Wait wait = new FluentWait(Utils.driver).withTimeout(5000, TimeUnit.MILLISECONDS).pollingEvery(250, TimeUnit.MILLISECONDS).ignoring( + NoSuchElementException.class).ignoring(StaleElementReferenceException.class); wait.until(ExpectedConditions.alertIsPresent()); Alert alertBox = Utils.driver.switchTo().alert(); alertBox.accept(); String recyclingFormWindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(recyclingFormWindowhandle); - tousseItemTable=Utils.retryingFind(By.id("tousseItemTable")); - List addButtons = tousseItemTable.findElements(By - .cssSelector(".btn-a")); + tousseItemTable = Utils.retryingFind(By.id("tousseItemTable")); + List addButtons = tousseItemTable.findElements(By.cssSelector(".btn-a")); for (WebElement addButton : addButtons) { addButton.click(); } - Utils.retryingFindAndClick(By.cssSelector(".btn-e")); + Utils.retryingFindAndClick(By.id("saveBtn")); } catch (Exception e) { e.printStackTrace(); @@ -887,43 +748,34 @@ @Test public void recyle_change() { Utils.retryingFindAndClick(By.id("depart")); - WebElement frame = Utils.retryingFindAndSwitchToFrame(By - .id("xubox_iframe")); + WebElement frame = Utils.retryingFindAndSwitchToFrame(By.tagName("iframe")); Utils.retryingFindAndClick(By.id("buttonX")); String name = Utils.settings.getJSONObject("临床科室").getString("名称"); - Utils.retryingFindAndClick(By.xpath("//div/ul/li/a[contains(text(), '" - + name + "')]")); + Utils.retryingFindAndClick(By.xpath("//div/ul/li/a[contains(text(), '" + name + "')]")); String recyclingFormWindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(recyclingFormWindowhandle); Utils.retryingFindAndClick(By.id("applicationType")); - frame = Utils.retryingFindAndSwitchToFrame(By.id("xubox_iframe")); + frame = Utils.retryingFindAndSwitchToFrame(By.tagName("iframe")); - Utils.retryingFindAndClick(By - .xpath("//div/ul/li/a[contains(text(), '通用申请单')]")); + Utils.retryingFindAndClick(By.xpath("//div/ul/li/a[contains(text(), '通用申请单')]")); recyclingFormWindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(recyclingFormWindowhandle); Utils.retryingFindAndClick(By.id("recyclingRecordTable")); Utils.retryingFindAndClick(By.xpath("//i/a[contains(text(), '删除')]")); - Wait wait = new FluentWait(Utils.driver) - .withTimeout(5000, TimeUnit.MILLISECONDS) - .pollingEvery(250, TimeUnit.MILLISECONDS) - .ignoring(NoSuchElementException.class) - .ignoring(StaleElementReferenceException.class); - WebElement tousseItemTable = wait - .until(new Function() { - public WebElement apply(WebDriver driver) { - return Utils.retryingFind(By.id("tousseItemTable")); - } - }); - tousseItemTable.sendKeys(Utils.settings.getJSONObject("一级供应室清洗篮筐1") - .getString("条码") + "\n"); - List addButtons = tousseItemTable.findElements(By - .cssSelector(".btn-a")); + Wait wait = new FluentWait(Utils.driver).withTimeout(5000, TimeUnit.MILLISECONDS).pollingEvery(250, TimeUnit.MILLISECONDS).ignoring( + NoSuchElementException.class).ignoring(StaleElementReferenceException.class); + WebElement tousseItemTable = wait.until(new Function() { + public WebElement apply(WebDriver driver) { + return Utils.retryingFind(By.id("tousseItemTable")); + } + }); + tousseItemTable.sendKeys(Utils.settings.getJSONObject("一级供应室清洗篮筐1").getString("条码") + "\n"); + List addButtons = tousseItemTable.findElements(By.cssSelector(".btn-a")); for (WebElement addButton : addButtons) { addButton.click(); } - Utils.retryingFindAndClick(By.cssSelector(".btn-e")); + Utils.retryingFindAndClick(By.id("saveBtn")); } /** @@ -935,21 +787,15 @@ Utils.retryingFindAndClick(By.xpath("//body/div[1]/div[2]/img[2]")); - Wait wait = new FluentWait(Utils.driver) - .withTimeout(5000, TimeUnit.MILLISECONDS) - .pollingEvery(250, TimeUnit.MILLISECONDS) - .ignoring(NoSuchElementException.class) - .ignoring(StaleElementReferenceException.class); - WebElement tousseItemTable = wait - .until(new Function() { - public WebElement apply(WebDriver driver) { - return Utils.retryingFind(By.id("tousseItemTable")); - } - }); - tousseItemTable.sendKeys(Utils.settings.getJSONObject("一级供应室清洗篮筐1") - .getString("条码") + "\n"); - List addButtons = tousseItemTable.findElements(By - .cssSelector(".btn-a")); + Wait wait = new FluentWait(Utils.driver).withTimeout(5000, TimeUnit.MILLISECONDS).pollingEvery(250, TimeUnit.MILLISECONDS).ignoring( + NoSuchElementException.class).ignoring(StaleElementReferenceException.class); + WebElement tousseItemTable = wait.until(new Function() { + public WebElement apply(WebDriver driver) { + return Utils.retryingFind(By.id("tousseItemTable")); + } + }); + tousseItemTable.sendKeys(Utils.settings.getJSONObject("一级供应室清洗篮筐1").getString("条码") + "\n"); + List addButtons = tousseItemTable.findElements(By.cssSelector(".btn-a")); for (WebElement addButton : addButtons) { addButton.click(); } @@ -962,10 +808,7 @@ String recyclingFormWindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(recyclingFormWindowhandle); Utils.retryingFindAndClick(By.cssSelector(".btn-d")); - wait = new FluentWait(Utils.driver) - .withTimeout(5000, TimeUnit.MILLISECONDS) - .pollingEvery(250, TimeUnit.MILLISECONDS) - .ignoring(NoSuchElementException.class) + wait = new FluentWait(Utils.driver).withTimeout(5000, TimeUnit.MILLISECONDS).pollingEvery(250, TimeUnit.MILLISECONDS).ignoring(NoSuchElementException.class) .ignoring(StaleElementReferenceException.class); wait.until(ExpectedConditions.alertIsPresent()); Alert alertBox = Utils.driver.switchTo().alert(); @@ -986,8 +829,7 @@ Utils.retryingFindAndClick(By.id("state")); - WebElement frame = Utils.retryingFindAndSwitchToFrame(By - .id("xubox_iframe")); + WebElement frame = Utils.retryingFindAndSwitchToFrame(By.tagName("iframe")); Utils.retryingFindAndClick(By.linkText("未确认")); String recyclingFormWindowhandle = Utils.driver.getWindowHandle(); @@ -1012,15 +854,12 @@ Utils.retryingFind(By.id("recyclingRecordTable")); boolean displayed = false; - WebElement element = Utils.retryingFind(By - .cssSelector("tr[bgcolor='#FF8C69']")); + WebElement element = Utils.retryingFind(By.cssSelector("tr[bgcolor='#FF8C69']")); if (element != null) { displayed = element.isDisplayed(); if (displayed) { - Utils.retryingFindAndClick(By - .cssSelector("tr[bgcolor='#FF8C69']")); - Utils.retryingFindClickFirstCellOfTable(By - .id("recyclingRecordTable")); + Utils.retryingFindAndClick(By.cssSelector("tr[bgcolor='#FF8C69']")); + Utils.retryingFindClickFirstCellOfTable(By.id("recyclingRecordTable")); Utils.retryingFindAndClick(By.id("confirmBtnTd")); } @@ -1037,22 +876,17 @@ @Test public void recyle_custom(String basket) { try { - Utils.retryingFindAndSendKeys(By.id("awaitForRecycleTable"), - Utils.settings.getJSONObject("临床科室").getString("条码") + "\n"); + Utils.retryingFindAndSendKeys(By.id("awaitForRecycleTable"), Utils.settings.getJSONObject("临床科室").getString("条码") + "\n"); WebElement element = Utils.retryingFind(By.id("tousseItemTable")); if (element == null) { - Utils.retryingFindClickFirstCellOfTable(By - .id("awaitForRecycleTable")); + Utils.retryingFindClickFirstCellOfTable(By.id("awaitForRecycleTable")); } WebElement recycleForm = scanRecycleUserBarcode(); Utils.changeCustomWindow(); String currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); - Wait wait = new FluentWait(Utils.driver) - .withTimeout(5000, TimeUnit.MILLISECONDS) - .pollingEvery(250, TimeUnit.MILLISECONDS) - .ignoring(NoSuchElementException.class) - .ignoring(StaleElementReferenceException.class); + Wait wait = new FluentWait(Utils.driver).withTimeout(5000, TimeUnit.MILLISECONDS).pollingEvery(250, TimeUnit.MILLISECONDS).ignoring( + NoSuchElementException.class).ignoring(StaleElementReferenceException.class); recycleForm = wait.until(new Function() { public WebElement apply(WebDriver driver) { return Utils.retryingFind(By.id("tousseItemTable")); @@ -1061,10 +895,8 @@ recycleForm.sendKeys(basket + "\n"); dialogWindowClose(); // 判断自定义入筐扫完篮筐直到回调成功后才执行后面的入筐 - wait.until(ExpectedConditions.attributeToBe( - By.id("seleniumResult"), "value", "1")); - List addButtons = recycleForm.findElements(By - .cssSelector(".btn-a")); + wait.until(ExpectedConditions.attributeToBe(By.id("seleniumResult"), "value", "1")); + List addButtons = recycleForm.findElements(By.cssSelector(".btn-a")); for (WebElement addButton : addButtons) { addButton.click(); @@ -1074,10 +906,7 @@ for (String winHandle : Utils.driver.getWindowHandles()) { Utils.driver.switchTo().window(winHandle); } - wait = new FluentWait(Utils.driver) - .withTimeout(5000, TimeUnit.MILLISECONDS) - .pollingEvery(250, TimeUnit.MILLISECONDS) - .ignoring(NoSuchElementException.class) + wait = new FluentWait(Utils.driver).withTimeout(5000, TimeUnit.MILLISECONDS).pollingEvery(250, TimeUnit.MILLISECONDS).ignoring(NoSuchElementException.class) .ignoring(StaleElementReferenceException.class); recycleForm = wait.until(new Function() { public WebElement apply(WebDriver driver) { @@ -1097,7 +926,7 @@ } } - Utils.retryingFindAndClick(By.cssSelector(".btn-e")); + Utils.retryingFindAndClick(By.id("saveBtn")); Thread.sleep(2000); } catch (Exception e) { e.printStackTrace(); @@ -1143,25 +972,19 @@ WebElement table = null; try { - // 扫描回收人条码 - String name = Utils.settings.getJSONObject("回收人").getString("条码"); - - table = Utils.retryingFindAndSendKeys(By.id("recyclingUser"), name - + "\n"); // table = Utils.retryingFindAndSendKeys(By.id("tousseItemTable"), // name + "\n"); - + Wait wait = new FluentWait(Utils.driver).withTimeout(5000, TimeUnit.MILLISECONDS).pollingEvery(250, TimeUnit.MILLISECONDS).ignoring( + NoSuchElementException.class).ignoring(StaleElementReferenceException.class); + table=wait.until(new Function() { + String name = Utils.settings.getJSONObject("回收人").getString("条码"); + public WebElement apply(WebDriver driver) { + return Utils.retryingFindAndSendKeys(By.id("recyclingUser"), name + "\n"); + } + }); // 断言回收人的姓名填写成功 - Wait wait = new FluentWait(Utils.driver) - .withTimeout(5000, TimeUnit.MILLISECONDS) - .pollingEvery(250, TimeUnit.MILLISECONDS) - .ignoring(NoSuchElementException.class) - .ignoring(StaleElementReferenceException.class); + wait.until(ExpectedConditions.attributeContains(By.id("recyclingUser"), "value", Utils.settings.getJSONObject("回收人").getString("姓名"))); - wait.until(ExpectedConditions.attributeContains(By - .id("recyclingUser"), "value", Utils.settings - .getJSONObject("回收人").getString("姓名"))); - // AssertJUnit.assertEquals(Utils.settings.getJSONObject("回收人").getString("姓名") // , // Utils.retryingFind(By.id("recyclingUser")).getAttribute("value")); @@ -1172,8 +995,6 @@ // String recyclingFormWindowhandle = // Utils.driver.getWindowHandle(); // Utils.driver.switchTo().window(recyclingFormWindowhandle); - name = Utils.settings.getJSONObject("清点人").getString("条码"); - // Thread.sleep(1000); // Utils.retryingFind(By.cssSelector("input[value='清点人员']")) // .click(); @@ -1182,13 +1003,14 @@ // 继续通过retryFind方式查找table,然后点击,提高可靠性 // table = Utils.retryingFindAndSendKeys(By.id("tousseItemTable"), // name + "\n"); - table = Utils.retryingFindAndSendKeys(By.id("operator"), name - + "\n"); - + table=wait.until(new Function() { + String name = Utils.settings.getJSONObject("清点人").getString("条码"); + public WebElement apply(WebDriver driver) { + return Utils.retryingFindAndSendKeys(By.id("operator"), name + "\n"); + } + }); // 断言清点人的姓名填写成功 - wait.until(ExpectedConditions.attributeContains(By.id("operator"), - "value", Utils.settings.getJSONObject("清点人") - .getString("姓名"))); + wait.until(ExpectedConditions.attributeContains(By.id("operator"), "value", Utils.settings.getJSONObject("清点人").getString("姓名"))); // AssertJUnit.assertEquals(Utils.settings.getJSONObject("清点人").getString("姓名") // , @@ -1211,14 +1033,12 @@ private void dialogWindowClose() { boolean displayed = false; - WebElement element = Utils.retryingFind(By - .xpath("//button/span[contains(text(), '是')]")); + WebElement element = Utils.retryingFind(By.xpath("//button/span[contains(text(), '是')]")); if (element != null) { displayed = element.isDisplayed(); } if (displayed) { - Utils.retryingFindAndClick(By - .xpath("//button/span[contains(text(), '是')]")); + Utils.retryingFindAndClick(By.xpath("//button/span[contains(text(), '是')]")); } } Index: ssts-selenium-test/src/test/java/test_4_1/Delivery.java =================================================================== diff -u -r18131 -r18161 --- ssts-selenium-test/src/test/java/test_4_1/Delivery.java (.../Delivery.java) (revision 18131) +++ ssts-selenium-test/src/test/java/test_4_1/Delivery.java (.../Delivery.java) (revision 18161) @@ -42,17 +42,14 @@ @Test public void Delivery_TousseAndDressing() { try { - Utils.driver.navigate().refresh(); - String currentwindowhandle = Utils.driver.getWindowHandle(); - Utils.driver.switchTo().window(currentwindowhandle); - Utils.tryToCloseWarningWindow(); + Utils.refresh(); 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(); + String currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); Utils.retryingFindAndSendKeys(By.id("senderBarcode"), Utils.settings.getJSONObject("一级供应室用户").getString("条码") @@ -276,10 +273,7 @@ Utils.retryingFindAndClick(By .xpath("//button[contains(text(), '保存')]")); - Utils.driver.navigate().refresh(); - String currentwindowhandle = Utils.driver.getWindowHandle(); - Utils.driver.switchTo().window(currentwindowhandle); - Utils.tryToCloseWarningWindow(); + Utils.refresh(); Utils.retryingFindAndClick(By.id("invoicePlan")); WebElement frame = Utils.retryingFindAndSwitchToFrame(By .id("iframe_invoicePlan")); @@ -288,7 +282,7 @@ Utils.retryingFindAndClick(By.xpath("//a[contains(text(), '" + name + "')]")); Utils.driver.switchTo().defaultContent(); - currentwindowhandle = Utils.driver.getWindowHandle(); + String currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); // 代理灭菌发货 @@ -409,10 +403,7 @@ @Test public void Delivery_materials() { try { - Utils.driver.navigate().refresh(); - String currentwindowhandle = Utils.driver.getWindowHandle(); - Utils.driver.switchTo().window(currentwindowhandle); - Utils.tryToCloseWarningWindow(); + Utils.refresh(); Utils.retryingFindAndClick(By.id("enterpriseView")); WebElement frame = Utils.retryingFindAndSwitchToFrame(By .id("iframe_enterpriseView")); @@ -424,7 +415,7 @@ frame = Utils.retryingFindAndSwitchToFrame(By.id("mainFrame")); Utils.retryingFindAndClick(By .xpath("//button[contains(text(), '添加')]")); - currentwindowhandle = Utils.driver.getWindowHandle(); + String currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); Utils.retryingFindAndSendKeys(By.id("departSearch"), Keys.DOWN); String name = Utils.settings.getJSONObject("临床科室").getString("名称"); @@ -465,10 +456,7 @@ @Test public void Delivery_custom() { try { - Utils.driver.navigate().refresh(); - String currentwindowhandle = Utils.driver.getWindowHandle(); - Utils.driver.switchTo().window(currentwindowhandle); - Utils.tryToCloseWarningWindow(); + Utils.refresh(); Utils.retryingFindAndClick(By.id("enterpriseView")); WebElement frame = Utils.retryingFindAndSwitchToFrame(By .id("iframe_enterpriseView")); @@ -479,7 +467,7 @@ frame = Utils.retryingFindAndSwitchToFrame(By.id("mainFrame")); - currentwindowhandle = Utils.driver.getWindowHandle(); + String currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); // 等待仓库加载 @@ -514,17 +502,14 @@ @Test public void Delivery_auxiliary() { try { - Utils.driver.navigate().refresh(); - String currentwindowhandle = Utils.driver.getWindowHandle(); - Utils.driver.switchTo().window(currentwindowhandle); - Utils.tryToCloseWarningWindow(); + Utils.refresh(); 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(); + String currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); Utils.retryingFindAndClick(By .xpath("//button[contains(text(), '辅助发货')]")); Index: ssts-selenium-test/src/test/java/test_4_1/Disinfection.java =================================================================== diff -u -r18142 -r18161 --- ssts-selenium-test/src/test/java/test_4_1/Disinfection.java (.../Disinfection.java) (revision 18142) +++ ssts-selenium-test/src/test/java/test_4_1/Disinfection.java (.../Disinfection.java) (revision 18161) @@ -93,10 +93,7 @@ @Test public void disinfection_loading() { try { - Utils.driver.navigate().refresh(); - String currentwindowhandle = Utils.driver.getWindowHandle(); - Utils.driver.switchTo().window(currentwindowhandle); - Utils.tryToCloseWarningWindow(); + Utils.refresh(); Utils.retryingFindAndClick(By.id("sterilizationLoading")); WebElement frame = Utils.retryingFindAndSwitchToFrame(By .id("iframe_sterilizationLoading")); @@ -153,10 +150,7 @@ @Test public void disinfection_loading_outside() { try { - Utils.driver.navigate().refresh(); - String currentwindowhandle = Utils.driver.getWindowHandle(); - Utils.driver.switchTo().window(currentwindowhandle); - Utils.tryToCloseWarningWindow(); + Utils.refresh(); Utils.retryingFindAndClick(By.id("sterilizationLoading")); WebElement frame = Utils.retryingFindAndSwitchToFrame(By .id("iframe_sterilizationLoading")); @@ -958,11 +952,7 @@ @Test public void disinfection_agent_outside_noApply() { try { - Utils.driver.navigate().refresh(); - String currentwindowhandle = Utils.driver.getWindowHandle(); - Utils.driver.switchTo().window(currentwindowhandle); - - Utils.tryToCloseWarningWindow(); + Utils.refresh(); Utils.retryingFindAndClick(By.id("enterpriseView")); WebElement frame = Utils.retryingFindAndSwitchToFrame(By .id("iframe_enterpriseView")); @@ -976,7 +966,7 @@ Utils.retryingFindAndClick(By .xpath("//button[contains(text(), '添加')]")); - currentwindowhandle = Utils.driver.getWindowHandle(); + String currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); Utils.retryingFindAndSendKeys(By.id("scanBarcode"), Utils.settings @@ -1029,11 +1019,7 @@ @Test public void disinfection_agent_outside() { try { - Utils.driver.navigate().refresh(); - String currentwindowhandle = Utils.driver.getWindowHandle(); - Utils.driver.switchTo().window(currentwindowhandle); - - Utils.tryToCloseWarningWindow(); + Utils.refresh(); Utils.retryingFindAndClick(By.id("enterpriseView")); WebElement frame = Utils.retryingFindAndSwitchToFrame(By .id("iframe_enterpriseView")); @@ -1046,7 +1032,7 @@ frame = Utils.retryingFindAndSwitchToFrame(By.id("mainFrame")); Utils.retryingFindAndClick(By .xpath("//button[contains(text(), '添加')]")); - currentwindowhandle = Utils.driver.getWindowHandle(); + String currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); Utils.retryingFindAndSendKeys(By.id("scanBarcode"), Utils.settings @@ -1104,10 +1090,7 @@ @Test public void disinfection_gdsy_agent_outside() { try { - Utils.driver.navigate().refresh(); - String currentwindowhandle = Utils.driver.getWindowHandle(); - Utils.driver.switchTo().window(currentwindowhandle); - Utils.tryToCloseWarningWindow(); + Utils.refresh(); Utils.retryingFindAndClick(By.id("enterpriseView")); WebElement frame = Utils.retryingFindAndSwitchToFrame(By .id("iframe_enterpriseView")); @@ -1120,7 +1103,7 @@ frame = Utils.retryingFindAndSwitchToFrame(By.id("mainFrame")); Utils.retryingFindAndClick(By .xpath("//button[contains(text(), '添加')]")); - currentwindowhandle = Utils.driver.getWindowHandle(); + String currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); Utils.retryingFindAndSendKeys(By.id("depart"), Keys.DOWN); Index: ssts-selenium-test/src/test/java/test_4_1/ALL.java =================================================================== diff -u -r18142 -r18161 --- ssts-selenium-test/src/test/java/test_4_1/ALL.java (.../ALL.java) (revision 18142) +++ ssts-selenium-test/src/test/java/test_4_1/ALL.java (.../ALL.java) (revision 18161) @@ -74,37 +74,25 @@ login.login_secondSupplyRoom(false); /** 二级供应室回收 */ /** 二级供应室自定义入筐回收 */ - recyle.recyle_custom(Utils.settings.getJSONObject("二级供应室清洗篮筐1") - .getString("条码")); - Utils.waitUntilUrlChange( - SERVER_URL - + "/disinfectsystem/touchScreen/recycle/awaitForRecycleList.jsp?resolution=1980", - 5); + recyle.recyle_custom(Utils.settings.getJSONObject("二级供应室清洗篮筐1").getString("条码")); + Utils.waitUntilUrlChange(SERVER_URL + "/disinfectsystem/touchScreen/recycle/awaitForRecycleList.jsp?resolution=1980", 5); /** 二级供应室判断消毒物品申请单是否存在 */ Utils.retryingFind(By.tagName("body")); - WebElement element = Utils.retryingFindForthCellOfTable(By - .id("awaitForRecycleTable")); + + WebElement element = Utils.retryingFindForthCellOfTable(By.id("awaitForRecycleTable")); if (element != null) { displayed = element.isDisplayed(); if (displayed) { recyle.recyle_SecondSupplyRoom(); - Utils.waitUntilUrlChange( - SERVER_URL - + "/disinfectsystem/touchScreen/recycle/awaitForRecycleList.jsp?resolution=1980", - 5); + Utils.waitUntilUrlChange(SERVER_URL + "/disinfectsystem/touchScreen/recycle/awaitForRecycleList.jsp?resolution=1980", 5); Utils.retryingFindAndClick(By.id("return")); - Utils.waitUntilUrlChange(SERVER_URL - + "/homepage/portalPage.jsp", 5); + Utils.waitUntilUrlChange(SERVER_URL + "/homepage/portalPage.jsp", 5); Utils.tryToCloseWarningWindow(); } } else { - Utils.waitUntilUrlChange( - SERVER_URL - + "/disinfectsystem/touchScreen/recycle/awaitForRecycleList.jsp?resolution=1980", - 5); + Utils.waitUntilUrlChange(SERVER_URL + "/disinfectsystem/touchScreen/recycle/awaitForRecycleList.jsp?resolution=1980", 5); Utils.retryingFindAndClick(By.id("return")); - Utils.waitUntilUrlChange(SERVER_URL - + "/homepage/portalPage.jsp", 5); + Utils.waitUntilUrlChange(SERVER_URL + "/homepage/portalPage.jsp", 5); Utils.tryToCloseWarningWindow(); } logger.info("二级供应室清洗成功"); @@ -114,78 +102,48 @@ recyle.init(); /** 一级供应室回收带标识牌的回收单 */ recyle.recyle_recyleSignboardAndDropAndScrap(); - Utils.waitUntilUrlChange( - SERVER_URL - + "/disinfectsystem/touchScreen/recycle/awaitForRecycleList.jsp?resolution=1980", - 5); + Utils.waitUntilUrlChange(SERVER_URL + "/disinfectsystem/touchScreen/recycle/awaitForRecycleList.jsp?resolution=1980", 8); logger.info("一级供应室回收带标识牌的回收单完成"); - /** 一级供应室回收单确认 */ recyle.recyle_confirm_new(); - Utils.waitUntilUrlChange( - SERVER_URL - + "/disinfectsystem/touchScreen/recycle/awaitForRecycleList.jsp?resolution=1980", - 5); + Utils.waitUntilUrlChange(SERVER_URL + "/disinfectsystem/touchScreen/recycle/awaitForRecycleList.jsp?resolution=1980", 8); logger.info("一级供应室回收单确认"); /** 一级供应室回收部分终止的单 */ recyle.recyle_oneSupplyRoom(); - Utils.waitUntilUrlChange( - SERVER_URL - + "/disinfectsystem/touchScreen/recycle/recycleForTouchScreen.jsp?resolution=1980", - 5); + Utils.waitUntilUrlChange(SERVER_URL + "/disinfectsystem/touchScreen/recycle/recycleForTouchScreen.jsp?resolution=1980", 8); logger.info("一级供应室回收部分终止的单完成"); /** 切换篮筐并丢失材料 */ recyle.recyle_changeBasket(); - Utils.waitUntilUrlChange( - SERVER_URL - + "/disinfectsystem/touchScreen/recycle/awaitForRecycleList.jsp?resolution=1980", - 5); + Utils.waitUntilUrlChange(SERVER_URL + "/disinfectsystem/touchScreen/recycle/awaitForRecycleList.jsp?resolution=1980", 8); logger.info("切换篮筐并丢失材料完成"); /** 一级供应室回收单确认 */ recyle.recyle_confirm_new(); - Utils.waitUntilUrlChange( - SERVER_URL - + "/disinfectsystem/touchScreen/recycle/awaitForRecycleList.jsp?resolution=1980", - 5); + Utils.waitUntilUrlChange(SERVER_URL + "/disinfectsystem/touchScreen/recycle/awaitForRecycleList.jsp?resolution=1980", 8); logger.info("一级供应室回收单确认完成"); /** 一级供应室回收申请单 */ recyle.recyle_oneSupplyRoomSignboard(); - Utils.waitUntilUrlChange( - SERVER_URL - + "/disinfectsystem/touchScreen/recycle/awaitForRecycleList.jsp?resolution=1980", - 5); + Utils.waitUntilUrlChange(SERVER_URL + "/disinfectsystem/touchScreen/recycle/awaitForRecycleList.jsp?resolution=1980", 8); logger.info("一级供应室回收申请单完成"); /** 一级供应室回收外来器械 */ recyle.recyle_Foreign_edit(); - Utils.waitUntilUrlChange( - SERVER_URL - + "/disinfectsystem/touchScreen/recycle/awaitForRecycleList.jsp?resolution=1980", - 5); + Utils.waitUntilUrlChange(SERVER_URL + "/disinfectsystem/touchScreen/recycle/awaitForRecycleList.jsp?resolution=1980", 8); logger.info("一级供应室回收外来器械完成"); recyle.recyle_Foreign(); - Utils.waitUntilUrlChange( - SERVER_URL - + "/disinfectsystem/touchScreen/recycle/awaitForRecycleList.jsp?resolution=1980", - 5); + Utils.waitUntilUrlChange(SERVER_URL + "/disinfectsystem/touchScreen/recycle/awaitForRecycleList.jsp?resolution=1980", 8); logger.info("recyle_Foreign"); /** 判断自定义器械包申请单是否存在 */ Utils.retryingFind(By.tagName("body")); - element = Utils.retryingFindForthCellOfTable(By - .id("awaitForRecycleTable")); + element = Utils.retryingFindForthCellOfTable(By.id("awaitForRecycleTable")); if (element != null) { displayed = element.isDisplayed(); } if (displayed) { recyle.recyle_customSet(); - Utils.waitUntilUrlChange( - SERVER_URL - + "/disinfectsystem/touchScreen/recycle/awaitForRecycleList.jsp?resolution=1980", - 5); + Utils.waitUntilUrlChange(SERVER_URL + "/disinfectsystem/touchScreen/recycle/awaitForRecycleList.jsp?resolution=1980", 8); } /** 判断消毒物品申请单是否存在 */ Utils.retryingFind(By.tagName("body")); - element = Utils.retryingFindForthCellOfTable(By - .id("awaitForRecycleTable")); + element = Utils.retryingFindForthCellOfTable(By.id("awaitForRecycleTable")); if (element != null) { displayed = element.isDisplayed(); if (displayed) { @@ -205,22 +163,19 @@ // 一级供应室清洗并清洗添加材料 wash.wash_oneSupplyRoom(); // 清洗删除篮筐再添加篮筐,扫描不同的责任人 - Utils.retryingFindAndClick(By - .xpath("//button[contains(text(), '添加')]")); + Utils.retryingFindAndClick(By.xpath("//button[contains(text(), '添加')]")); Utils.driver.switchTo().defaultContent(); String currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); wash.wash_washChangeBasket(); - Utils.retryingFindAndClick(By - .xpath("//button[contains(text(), '添加')]")); + Utils.retryingFindAndClick(By.xpath("//button[contains(text(), '添加')]")); Utils.driver.switchTo().defaultContent(); currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); // 清洗失败,重新清洗,清洗完成,清洗机需要设置为清洗确认 wash.wash_fail_reWash_Finish(); Utils.driver.switchTo().defaultContent(); - Utils.retryingFindAndClick(By - .xpath("//span[contains(text(), '个人桌面')]")); + Utils.retryingFindAndClick(By.xpath("//span[contains(text(), '个人桌面')]")); /*** 材料入库报损丢失的材料 ***/ System.out.print("报损补充开始:"); Utils.DateTime(); @@ -237,27 +192,17 @@ System.out.print("审核开始:"); Utils.DateTime(); Utils.driver.switchTo().defaultContent(); - Utils.retryingFindAndClick(By - .xpath("//span[contains(text(), '个人桌面')]")); + Utils.retryingFindAndClick(By.xpath("//span[contains(text(), '个人桌面')]")); Actions moveover = new Actions(Utils.driver); - moveover.moveToElement(Utils.retryingFind(By.id("reviewPacking"))) - .perform(); - Utils.retryingFindAndClick(By.linkText(Utils.settings - .getJSONObject("一级供应室装配组").getString("名称3"))); + moveover.moveToElement(Utils.retryingFind(By.id("reviewPacking"))).perform(); + Utils.retryingFindAndClick(By.linkText(Utils.settings.getJSONObject("一级供应室装配组").getString("名称3"))); Utils.retryingFindAndSwitchToFrame(By.id("iframe_reviewPacking")); - // displayed = false; - element = Utils.retryingFind(By - .xpath("//button[contains(text(), '进入审核列表')]")); + element = Utils.retryingFind(By.xpath("//button[contains(text(), '进入审核列表')]")); handleReview(element, review); - Utils.driver.navigate().refresh(); - currentwindowhandle = Utils.driver.getWindowHandle(); - Utils.driver.switchTo().window(currentwindowhandle); - Utils.tryToCloseWarningWindow(); + Utils.refresh(); moveover = new Actions(Utils.driver); - moveover.moveToElement(Utils.retryingFind(By.id("packing"))) - .perform(); - Utils.retryingFindAndClick(By.linkText(Utils.settings - .getJSONObject("一级供应室装配组").getString("名称2"))); + moveover.moveToElement(Utils.retryingFind(By.id("packing"))).perform(); + Utils.retryingFindAndClick(By.linkText(Utils.settings.getJSONObject("一级供应室装配组").getString("名称2"))); Utils.retryingFindAndSwitchToFrame(By.id("iframe_packing")); /*** 一级供应室补充丢失的材料 ***/ assemble.assemble_supplementLoss(); @@ -291,50 +236,41 @@ /*** 一级供应室自定义装配 ***/ assemble.assemble_custom(); /*** 一级供应室修改历史装配 ***/ - Utils.driver.navigate().refresh(); - currentwindowhandle = Utils.driver.getWindowHandle(); - Utils.driver.switchTo().window(currentwindowhandle); - Utils.tryToCloseWarningWindow(); + Utils.refresh(); ph.assemble_modifyTousse(); - Utils.driver.navigate().refresh(); - currentwindowhandle = Utils.driver.getWindowHandle(); - Utils.driver.switchTo().window(currentwindowhandle); - Utils.tryToCloseWarningWindow(); + Utils.refresh(); /*** 一级供应室审核器械包、敷料包 ***/ moveover = new Actions(Utils.driver); - moveover.moveToElement(Utils.retryingFind(By.id("reviewPacking"))) - .perform(); - Utils.retryingFindAndClick(By.linkText(Utils.settings - .getJSONObject("一级供应室装配组").getString("名称2"))); + moveover.moveToElement(Utils.retryingFind(By.id("reviewPacking"))).perform(); + Utils.retryingFindAndClick(By.linkText(Utils.settings.getJSONObject("一级供应室装配组").getString("名称2"))); Utils.retryingFindAndSwitchToFrame(By.id("iframe_reviewPacking")); - element = Utils.retryingFind(By - .xpath("//button[contains(text(), '进入审核列表')]")); + element = Utils.retryingFind(By.xpath("//button[contains(text(), '进入审核列表')]")); handleReview(element, review); /*** 一级供应室灭菌装载删除 ***/ disinfection.disinfection_loading(); - - //一级供应室灭菌 + + // 一级供应室灭菌 SterilizationTest.sterilizationSeriesOperationsOfFristSupplyRoom(); - -// System.out.print("灭菌开始:"); -// Utils.DateTime(); -// Utils.driver.switchTo().defaultContent(); -// Utils.retryingFindAndClick(By -// .xpath("//span[contains(text(), '个人桌面')]")); -// moveover = new Actions(Utils.driver); -// moveover.moveToElement( -// Utils.retryingFind(By.id("sterilizationRecord"))).perform(); -// Utils.retryingFindAndClick(By.linkText(Utils.settings -// .getJSONObject("灭菌炉分组").getString("大型压力蒸汽"))); -// Utils.retryingFindAndSwitchToFrame(By -// .id("iframe_sterilizationRecord")); -// Utils.retryingFindAndClick(By -// .xpath("//button[contains(text(), '添加')]")); -// Utils.driver.switchTo().defaultContent(); -// currentwindowhandle = Utils.driver.getWindowHandle(); -// Utils.driver.switchTo().window(currentwindowhandle); -// disinfection.disinfection_failAndSuccess(); -// disinfection.after(); + + // System.out.print("灭菌开始:"); + // Utils.DateTime(); + // Utils.driver.switchTo().defaultContent(); + // Utils.retryingFindAndClick(By + // .xpath("//span[contains(text(), '个人桌面')]")); + // moveover = new Actions(Utils.driver); + // moveover.moveToElement( + // Utils.retryingFind(By.id("sterilizationRecord"))).perform(); + // Utils.retryingFindAndClick(By.linkText(Utils.settings + // .getJSONObject("灭菌炉分组").getString("大型压力蒸汽"))); + // Utils.retryingFindAndSwitchToFrame(By + // .id("iframe_sterilizationRecord")); + // Utils.retryingFindAndClick(By + // .xpath("//button[contains(text(), '添加')]")); + // Utils.driver.switchTo().defaultContent(); + // currentwindowhandle = Utils.driver.getWindowHandle(); + // Utils.driver.switchTo().window(currentwindowhandle); + // disinfection.disinfection_failAndSuccess(); + // disinfection.after(); /*** 一级供应室一次性物品 ***/ System.out.print("一次性物品开始:"); Utils.DateTime(); @@ -343,16 +279,12 @@ /*** 一级供应室发货 ***/ System.out.print("发货开始:"); Utils.DateTime(); - Utils.driver.navigate().refresh(); - currentwindowhandle = Utils.driver.getWindowHandle(); - Utils.driver.switchTo().window(currentwindowhandle); - Utils.tryToCloseWarningWindow(); + Utils.refresh(); Delivery delivery = new Delivery(); 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.retryingFindAndClick(By.xpath("//a[contains(text(), '" + name + "')]")); Utils.driver.switchTo().defaultContent(); currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); @@ -370,12 +302,12 @@ System.out.print("归还借物开始:"); Utils.DateTime(); Utils.driver.switchTo().defaultContent(); - Utils.retryingFindAndClick(By - .xpath("//span[contains(text(), '个人桌面')]")); + Utils.retryingFindAndClick(By.xpath("//span[contains(text(), '个人桌面')]")); apply.apply_borrow_return(); apply.after(); } catch (Exception e) { - logger.error(e, e); + logger.error(e, e); + e.printStackTrace(); AssertJUnit.fail(e.getMessage()); } } @@ -393,6 +325,6 @@ @AfterTest public void afterMethod() { - Utils.driver.quit(); + Utils.driver.quit(); } } Index: ssts-selenium-test/src/test/java/test_4_1/Assemble.java =================================================================== diff -u -r18131 -r18161 --- ssts-selenium-test/src/test/java/test_4_1/Assemble.java (.../Assemble.java) (revision 18131) +++ ssts-selenium-test/src/test/java/test_4_1/Assemble.java (.../Assemble.java) (revision 18161) @@ -196,10 +196,7 @@ @Test public void assemble_zdwy_dressing() { try { - Utils.driver.navigate().refresh(); - String currentwindowhandle = Utils.driver.getWindowHandle(); - Utils.driver.switchTo().window(currentwindowhandle); - Utils.tryToCloseWarningWindow(); + Utils.refresh(); Actions moveover = new Actions(Utils.driver); moveover.moveToElement(Utils.retryingFind(By.id("packing"))) .perform(); @@ -670,10 +667,7 @@ Utils.retryingFindAndClick(By .xpath("//button[contains(text(), '确定')]")); - Utils.driver.navigate().refresh(); - currentwindowhandle = Utils.driver.getWindowHandle(); - Utils.driver.switchTo().window(currentwindowhandle); - Utils.tryToCloseWarningWindow(); + Utils.refresh(); Actions moveover = new Actions(Utils.driver); moveover.moveToElement(Utils.retryingFind(By.id("packing"))) .perform(); @@ -705,10 +699,7 @@ Utils.retryingFindAndClick(By .xpath("//button[contains(text(), '确定')]")); - Utils.driver.navigate().refresh(); - currentwindowhandle = Utils.driver.getWindowHandle(); - Utils.driver.switchTo().window(currentwindowhandle); - Utils.tryToCloseWarningWindow(); + Utils.refresh(); moveover = new Actions(Utils.driver); moveover.moveToElement(Utils.retryingFind(By.id("packing"))) .perform(); @@ -767,12 +758,7 @@ @Test public void assemble_zdwy_unpackForgein() { try { - Utils.driver.navigate().refresh(); - String currentwindowhandle = Utils.driver.getWindowHandle(); - Utils.driver.switchTo().window(currentwindowhandle); - - Utils.tryToCloseWarningWindow(); - + Utils.refresh(); Actions moveover = new Actions(Utils.driver); moveover.moveToElement(Utils.retryingFind(By.id("packing"))) .perform(); @@ -796,7 +782,7 @@ editTreeGridCell("basketTreeGrid", 1, 3); Utils.retryingFindAndClick(By.cssSelector("input[value='拆包']")); - currentwindowhandle = Utils.driver.getWindowHandle(); + String currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); Utils.retryingFindAndClick(By .cssSelector("input[name='sterilingType']")); @@ -837,12 +823,7 @@ @Test public void assemble_unpackForgein() { try { - Utils.driver.navigate().refresh(); - String currentwindowhandle = Utils.driver.getWindowHandle(); - Utils.driver.switchTo().window(currentwindowhandle); - - Utils.tryToCloseWarningWindow(); - + Utils.refresh(); Actions moveover = new Actions(Utils.driver); moveover.moveToElement(Utils.retryingFind(By.id("packing"))) .perform(); @@ -868,7 +849,7 @@ Thread.sleep(1500); Utils.retryingFindAndClick(By.cssSelector("input[value='拆包']")); - currentwindowhandle = Utils.driver.getWindowHandle(); + String currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); Utils.retryingFindAndClick(By .cssSelector("input[name='sterilingType']")); @@ -1074,11 +1055,7 @@ @Test public void assemble_custom() { try { - Utils.driver.navigate().refresh(); - String currentwindowhandle = Utils.driver.getWindowHandle(); - Utils.driver.switchTo().window(currentwindowhandle); - Utils.tryToCloseWarningWindow(); - + Utils.refresh(); Utils.retryingFindAndClick(By.id("enterpriseView")); WebElement frame = Utils.retryingFindAndSwitchToFrame(By .id("iframe_enterpriseView")); @@ -1130,10 +1107,7 @@ @Test public void assemble_secondSupplyRoomsterilize() { try { - Utils.driver.navigate().refresh(); - String currentwindowhandle = Utils.driver.getWindowHandle(); - Utils.driver.switchTo().window(currentwindowhandle); - Utils.tryToCloseWarningWindow(); + Utils.refresh(); Actions moveover = new Actions(Utils.driver); moveover.moveToElement(Utils.retryingFind(By.id("packing"))) .perform(); Index: ssts-selenium-test/src/test/java/test_4_1/tools/Utils.java =================================================================== diff -u -r18132 -r18161 --- ssts-selenium-test/src/test/java/test_4_1/tools/Utils.java (.../Utils.java) (revision 18132) +++ ssts-selenium-test/src/test/java/test_4_1/tools/Utils.java (.../Utils.java) (revision 18161) @@ -2,7 +2,6 @@ import java.io.IOException; import java.io.InputStream; -import java.net.URL; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; @@ -27,7 +26,6 @@ import org.openqa.selenium.chrome.ChromeOptions; import org.openqa.selenium.ie.InternetExplorerDriver; import org.openqa.selenium.remote.DesiredCapabilities; -import org.openqa.selenium.remote.RemoteWebDriver; import org.openqa.selenium.support.ui.ExpectedCondition; import org.openqa.selenium.support.ui.FluentWait; import org.openqa.selenium.support.ui.Wait; @@ -170,9 +168,10 @@ ieCapabilities.setCapability("version", "11.0"); try { - // driver = new RemoteWebDriver(new URL( "http://192.168.2.18:4444/wd/hub"), ieCapabilities); - driver = new InternetExplorerDriver(ieCapabilities); - String cap = ((InternetExplorerDriver) driver).getCapabilities().toString(); +// driver = new RemoteWebDriver(new URL( "http://192.168.2.18:4444/wd/hub"), ieCapabilities); + driver = new InternetExplorerDriver(ieCapabilities); + String cap = ((InternetExplorerDriver) driver).getCapabilities() + .toString(); System.out.println("my cap = " + cap); } catch (Exception e) { e.printStackTrace(); @@ -965,6 +964,16 @@ } } + + /** + * 刷新页面 + */ + public static void refresh() { + Utils.driver.navigate().refresh(); + String currentwindowhandle = Utils.driver.getWindowHandle(); + Utils.driver.switchTo().window(currentwindowhandle); + Utils.tryToCloseWarningWindow(); + } /** * 等待一段时间,直到页面的URL地址变为期望值 Index: ssts-selenium-test/src/test/java/test_4_1/Reject.java =================================================================== diff -u -r17700 -r18161 --- ssts-selenium-test/src/test/java/test_4_1/Reject.java (.../Reject.java) (revision 17700) +++ ssts-selenium-test/src/test/java/test_4_1/Reject.java (.../Reject.java) (revision 18161) @@ -91,10 +91,7 @@ @Test public void Reject_Mateials_success() { try { - Utils.driver.navigate().refresh(); - String currentwindowhandle = Utils.driver.getWindowHandle(); - Utils.driver.switchTo().window(currentwindowhandle); - Utils.tryToCloseWarningWindow(); + Utils.refresh(); Utils.retryingFindAndClick(By.id("enterpriseView")); WebElement frame = Utils.retryingFindAndSwitchToFrame(By .id("iframe_enterpriseView")); @@ -109,7 +106,7 @@ frame = Utils.retryingFindAndSwitchToFrame(By.id("mainFrame")); Utils.retryingFindAndClick(By.xpath("//button[contains(text(), '添加')]")); - currentwindowhandle = Utils.driver.getWindowHandle(); + String currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); String name = Utils.settings.getJSONObject("临床科室").getString("名称");