/** * */ package test_4_1; import org.testng.annotations.Test; import org.testng.Assert; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeMethod; import java.util.concurrent.TimeUnit; import java.util.function.Function; import org.openqa.selenium.interactions.Actions; import org.openqa.selenium.By; import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.Keys; import org.openqa.selenium.NoSuchElementException; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.ui.FluentWait; import org.openqa.selenium.support.ui.Wait; import test_4_1.tools.Utils; /** * @author cherry 2016-07-18 * */ public class Apply { @BeforeMethod public void init() { Utils.init(); Login login = new Login(); login.login_clinic(); Utils.retryingFind(By.id("recyclingApplication")).click(); WebElement frame = Utils.retryingFind(By .id("iframe_recyclingApplication")); Utils.driver.switchTo().frame(frame); Utils.retryingFind(By.xpath("//button[contains(text(), '申请物品')]")) .click(); Utils.driver.switchTo().defaultContent(); String currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); } /** * 点击打开申请后直接提交 * */ @Test public void apply_fail() { Utils.retryingFind(By.cssSelector("a[id='commitBtn']")).click(); // assertTrue(Utils.retryingFind(By.xpath("msg-div22")).getText() // .contains("请填写申请的物品数量")); } /** * 向处理科室二级供应室申请器械包、敷料包、消毒物品 * */ @Test public void apply_secondSupplyRoom() { // 查询后输入数量 try { String SupplyRoomName = Utils.settings.getJSONObject("二级供应室用户") .getString("科室名称"); WebElement frame = Utils.retryingFind(By .id("iframe_recyclingApplication")); Utils.driver.switchTo().frame(frame); Utils.retryingFind(By.xpath("//button[contains(text(), '申请物品')]")) .click(); String currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); Utils.retryingFind( By.cssSelector("input[id='handleDepart-inputEl']")) .sendKeys(Keys.DOWN); Utils.retryingFind( By.xpath("//div/ul/li[contains(text(),'" + SupplyRoomName + "')]")).click(); Utils.retryingFind(By.cssSelector("input[name='package1']")) .sendKeys( Utils.settings.getJSONObject("二级供应室敷料包").getString( "名称")); Utils.retryingFind(By.cssSelector("input[name='package1']")) .sendKeys("\n"); Utils.retryingFind(By.cssSelector("input[name='count1']")) .sendKeys("2" + "\n"); Utils.retryingFind(By.cssSelector("input[name='package1']")) .clear(); Utils.retryingFind(By.cssSelector("input[name='package1']")) .sendKeys( Utils.settings.getJSONObject("二级供应室器械包").getString( "名称")); Utils.retryingFind(By.cssSelector("input[name='package1']")) .sendKeys("\n"); Utils.retryingFind(By.cssSelector("input[name='count1']")) .sendKeys("2" + "\n"); // Utils.retryingFind( // By.cssSelector("input[name='urgentAmount']")).sendKeys( // "1" + "\n"); Utils.retryingFind(By.cssSelector("input[name='package1']")) .clear(); Utils.retryingFind(By.cssSelector("input[name='package1']")) .sendKeys( Utils.settings.getJSONObject("二级供应室消毒物品") .getString("名称")); Utils.retryingFind(By.cssSelector("input[name='package1']")) .sendKeys("\n"); Utils.retryingFind(By.cssSelector("input[name='count1']")) .sendKeys("2" + "\n"); // // Utils.retryingFind( // By.cssSelector("input[name='urgentAmount']")).sendKeys( // "1" + "\n"); Utils.retryingFind(By.cssSelector("a[id='commitBtn']")).click(); // 定位到弹出对话框的按钮 Utils.LocaAndWait(); } catch (Exception e) { e.printStackTrace(); Assert.fail(e.getMessage()); } } /** * 向处理科室一级供应室申请器械包、敷料包、消毒物品 * */ @Test public void apply_oneSupplyRoom() { // 查询后输入数量 try { String SupplyRoomName = Utils.settings.getJSONObject("一级供应室用户") .getString("科室名称"); WebElement frame = Utils.retryingFind(By .id("iframe_recyclingApplication")); Utils.driver.switchTo().frame(frame); Utils.retryingFind(By.xpath("//button[contains(text(), '申请物品')]")) .click(); String currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); Utils.retryingFind( By.cssSelector("input[id='handleDepart-inputEl']")) .sendKeys(Keys.DOWN); Utils.retryingFind( By.xpath("//div/ul/li[contains(text(), '" + SupplyRoomName + "')]")).click(); Utils.retryingFind(By.cssSelector("input[name='package1']")) .sendKeys( Utils.settings.getJSONObject("一级供应室敷料包").getString( "名称")); Utils.retryingFind(By.cssSelector("input[name='package1']")) .sendKeys("\n"); Utils.retryingFind(By.cssSelector("input[name='count1']")) .sendKeys("2" + "\n"); Utils.retryingFind(By.cssSelector("input[name='package1']")) .sendKeys( Utils.settings.getJSONObject("一级供应室一次性物品") .getString("名称")); Utils.retryingFind(By.cssSelector("input[name='package1']")) .sendKeys("\n"); Utils.retryingFind(By.cssSelector("input[name='count1']")) .sendKeys("5" + "\n"); // 定位到弹出对话框的按钮 Utils.LocaAndWait(); // Utils.retryingFind( // By.cssSelector("input[name='urgentAmount']")).sendKeys( // "1" + "\n"); JavascriptExecutor js = (JavascriptExecutor) Utils.driver; String enterEdit = "var leftTreeGrid = top.Ext4.getCmp('tousseTreeGrid');" + "leftTreeGrid.cellEditing.startEditByPosition({row: 1,column: 2});"; js.executeScript(enterEdit); Actions action = new Actions(Utils.driver); action.sendKeys("2" + "\n").perform(); Utils.retryingFind(By.cssSelector("input[name='package1']")) .sendKeys( Utils.settings.getJSONObject("一级供应室消毒物品") .getString("名称")); Utils.retryingFind(By.cssSelector("input[name='package1']")) .sendKeys("\n"); Utils.retryingFind(By.cssSelector("input[name='count1']")) .sendKeys("2" + "\n"); Utils.retryingFind(By.cssSelector("input[name='package1']")) .sendKeys( Utils.settings.getJSONObject("一级供应室消毒物品1") .getString("名称")); Utils.retryingFind(By.cssSelector("input[name='package1']")) .sendKeys("\n"); Utils.retryingFind(By.cssSelector("input[name='count1']")) .sendKeys("2" + "\n"); // Utils.retryingFind( // By.cssSelector("input[name='urgentAmount']")).sendKeys( // "3" + "\n"); Utils.retryingFind(By.cssSelector("a[id='commitBtn']")).click(); boolean displayed = false; WebElement element = Utils.retryingFind(By .xpath("//span[contains(text(), '是')]")); if (element != null) { displayed = element.isDisplayed(); if (displayed) { // 定位到弹出对话框的按钮 Wait wait = new FluentWait( Utils.driver).withTimeout(30, TimeUnit.SECONDS) .pollingEvery(5, TimeUnit.SECONDS) .ignoring(NoSuchElementException.class); WebElement yesbutton = wait .until(new Function() { public WebElement apply(WebDriver driver) { return driver.findElement(By .xpath("//span[contains(text(), '否')]")); } }); yesbutton.click(); } } else { // 定位到弹出对话框的按钮 Utils.LocaAndWait(); } } catch (Exception e) { e.printStackTrace(); Assert.fail(e.getMessage()); } } /** * 申请一次性物品 * */ @Test public void apply_oneUse() { // 在模板上输入数量 // Utils.retryingFind(By.xpath("//span[contains(text(), '取消')]")).click(); try { WebElement frame = Utils.retryingFind(By .id("iframe_recyclingApplication")); Utils.driver.switchTo().frame(frame); Utils.retryingFind( By.xpath("//button[contains(text(), '申请一次性物品')]")).click(); String currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); JavascriptExecutor js = (JavascriptExecutor) Utils.driver; String enterEdit = "var leftTreeGrid = top.Ext4.getCmp('tousseTreeGrid');" + "leftTreeGrid.cellEditing.startEditByPosition({row: 0,column: 2});"; js.executeScript(enterEdit); Actions action = new Actions(Utils.driver); action.sendKeys("2" + "\n").perform(); // 查询后输入数量 WebElement name = Utils.retryingFind(By .cssSelector("input[name='package1']")); name.sendKeys(Utils.settings.getJSONObject("一级供应室一次性物品").getString( "名称")); name.sendKeys("\n"); WebElement amount = Utils.retryingFind(By .cssSelector("input[name='count1']")); amount.sendKeys("3"); amount.sendKeys("\n"); Utils.retryingFind(By.cssSelector("a[id='commitBtn']")).click(); // 定位到弹出对话框的按钮 Utils.LocaAndWait(); // assertTrue(Utils.retryingFind(By.id("msg-div22")).getText().contains("提交成功")); } catch (Exception e) { e.printStackTrace(); Assert.fail(e.getMessage()); } } /** * 申请消毒物品 * */ @Test public void apply_sterilize() { try { // WebElement frame = Utils.retryingFind(By // .id("iframe_recyclingApplication")); // Utils.driver.switchTo().frame(frame); Utils.retryingFind(By.xpath("//button[contains(text(), '申请消毒物品')]")) .click(); String currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); String name = Utils.settings.getJSONObject("一级供应室用户").getString( "科室名称"); Utils.retryingFind(By.id("handleDepart-inputEl")).sendKeys( Keys.DOWN); Utils.retryingFind( By.xpath("//div/ul/li[contains(text(), '" + name + "')]")) .click(); Utils.retryingFind(By.id("package1-inputEl")).sendKeys( Utils.settings.getJSONObject("一级供应室消毒物品").getString("名称")); Utils.retryingFind(By.id("package1-inputEl")).sendKeys("\n"); Utils.retryingFind(By.id("count1-inputEl")).sendKeys("2" + "\n"); Utils.retryingFind(By.id("package1-inputEl")).sendKeys( Utils.settings.getJSONObject("一级供应室消毒物品1").getString("名称")); Utils.retryingFind(By.id("package1-inputEl")).sendKeys("\n"); Utils.retryingFind(By.id("count1-inputEl")).sendKeys("2" + "\n"); Utils.retryingFind( By.xpath("//span/span/span[contains(text(), '提交')]")) .click(); // 定位到弹出对话框的按钮 Utils.LocaAndWait(); } catch (Exception e) { e.printStackTrace(); Assert.fail(e.getMessage()); } } /** * 申请器械包、敷料包(分单) * */ @Test public void apply_set() { try { WebElement frame = Utils.retryingFind(By .id("iframe_recyclingApplication")); Utils.driver.switchTo().frame(frame); Utils.retryingFind(By.xpath("//button[contains(text(), '申请器械包')]")) .click(); String currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); String name = Utils.settings.getJSONObject("一级供应室用户").getString( "科室名称"); Utils.retryingFind(By.id("handleDepart-inputEl")).sendKeys( Keys.DOWN); Utils.retryingFind( By.xpath("//div/ul/li[contains(text(), '" + name + "')]")) .click(); Utils.retryingFind(By.id("package1-inputEl")).sendKeys( Utils.settings.getJSONObject("一级供应室器械包").getString("名称")); Utils.retryingFind(By.id("package1-inputEl")).sendKeys("\n"); Utils.retryingFind(By.id("count1-inputEl")).sendKeys("2" + "\n"); Utils.retryingFind(By.id("package1-inputEl")).sendKeys( Utils.settings.getJSONObject("一级供应室敷料包").getString("名称")); Utils.retryingFind(By.id("package1-inputEl")).sendKeys("\n"); Utils.retryingFind(By.id("count1-inputEl")).sendKeys("2" + "\n"); Utils.retryingFind( By.xpath("//span/span/span[contains(text(), '提交')]")) .click(); // boolean displayed = false; // WebElement element = Utils.retryingFind(By // .xpath("//span[contains(text(), '是')]")); // if (element != null) { // displayed = element.isDisplayed(); // if (displayed) { // // 定位到弹出对话框的按钮 // WebDriverWait wait = new WebDriverWait(Utils.driver, 10); // WebElement yesButton = wait.until(ExpectedConditions // .visibilityOfElementLocated(By // .xpath("//span[contains(text(), '否')]"))); // yesButton.click(); // // } // } else { // 定位到弹出对话框的按钮 Utils.LocaAndWait(); // } } catch (Exception e) { e.printStackTrace(); Assert.fail(e.getMessage()); } } /** * 申请一次性物品(分单) * */ @Test public void apply_oneuse() { try { WebElement frame = Utils.retryingFind(By .id("iframe_recyclingApplication")); Utils.driver.switchTo().frame(frame); Utils.retryingFind( By.xpath("//button[contains(text(), '申请一次性物品')]")).click(); String currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); String name = Utils.settings.getJSONObject("一级供应室用户").getString( "科室名称"); Utils.retryingFind(By.id("handleDepart-inputEl")).sendKeys( Keys.DOWN); Utils.retryingFind( By.xpath("//div/ul/li[contains(text(), '" + name + "')]")) .click(); Utils.retryingFind(By.id("package1-inputEl")).sendKeys( Utils.settings.getJSONObject("一级供应室一次性物品").getString("名称")); Utils.retryingFind(By.id("package1-inputEl")).sendKeys("\n"); Utils.retryingFind(By.id("count1-inputEl")).sendKeys("5" + "\n"); // 定位到弹出对话框的按钮 Utils.LocaAndWait(); Utils.retryingFind( By.xpath("//span/span/span[contains(text(), '提交')]")) .click(); // 定位到弹出对话框的按钮 Utils.LocaAndWait(); } catch (Exception e) { e.printStackTrace(); Assert.fail(e.getMessage()); } } /** * 省医申请器械包、敷料包 * */ @Test public void apply_gdsy_sets() { try { String SupplyRoomName = Utils.settings.getJSONObject("一级供应室用户") .getString("科室名称"); String currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); Utils.retryingFind( By.cssSelector("input[id='handleDepart-inputEl']")) .sendKeys(Keys.DOWN); Utils.retryingFind( By.xpath("//div/ul/li[contains(text(), '" + SupplyRoomName + "')]")).click(); JavascriptExecutor js = (JavascriptExecutor) Utils.driver; String enterEdit = "var leftTreeGrid = top.Ext4.getCmp('tousseTreeGrid');" + "leftTreeGrid.cellEditing.startEditByPosition({row: 1,column: 2});"; js.executeScript(enterEdit); Actions action = new Actions(Utils.driver); action.sendKeys("2" + "\n").perform(); Utils.retryingFind(By.cssSelector("input[name='package1']")) .sendKeys( Utils.settings.getJSONObject("一级供应室敷料包").getString( "名称")); Utils.retryingFind(By.cssSelector("input[name='package1']")) .sendKeys("\n"); Utils.retryingFind(By.cssSelector("input[name='count1']")) .sendKeys("2" + "\n"); // Utils.retryingFind(By.cssSelector("input[name='package1']")) // .sendKeys( // Utils.settings.getJSONObject("一级供应室器械包").getString( // "名称")); // // Utils.retryingFind(By.cssSelector("input[name='package1']")) // .sendKeys("\n"); // Utils.retryingFind(By.cssSelector("input[name='count1']")) // .sendKeys("2" + "\n"); Utils.retryingFind( By.xpath("//span/span/span[contains(text(), '提交')]")) .click(); boolean displayed = false; WebElement element = Utils.retryingFind(By .xpath("//span[contains(text(), '是')]")); if (element != null) { displayed = element.isDisplayed(); if (displayed) { // 定位到弹出对话框的按钮 Wait wait = new FluentWait( Utils.driver).withTimeout(30, TimeUnit.SECONDS) .pollingEvery(5, TimeUnit.SECONDS) .ignoring(NoSuchElementException.class); WebElement yesbutton = wait .until(new Function() { public WebElement apply(WebDriver driver) { return driver.findElement(By .xpath("//span[contains(text(), '否')]")); } }); yesbutton.click(); } } else { // 定位到弹出对话框的按钮 Utils.LocaAndWait(); } } catch (Exception e) { e.printStackTrace(); Assert.fail(e.getMessage()); } } /** * 省医申请消毒物品 * */ @Test public void apply_gdsy_sterilize() { try { String SupplyRoomName = Utils.settings.getJSONObject("一级供应室用户") .getString("科室名称"); String currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); Utils.retryingFind( By.cssSelector("input[id='handleDepart-inputEl']")) .sendKeys(Keys.DOWN); Utils.retryingFind( By.xpath("//div/ul/li[contains(text(), '" + SupplyRoomName + "')]")).click(); Utils.retryingFind(By.id("package1-inputEl")).sendKeys( Utils.settings.getJSONObject("一级供应室消毒物品").getString("名称")); Utils.retryingFind(By.id("package1-inputEl")).sendKeys("\n"); Utils.retryingFind(By.id("count1-inputEl")).sendKeys("2" + "\n"); Utils.retryingFind(By.id("package1-inputEl")).sendKeys( Utils.settings.getJSONObject("一级供应室消毒物品1").getString("名称")); Utils.retryingFind(By.id("package1-inputEl")).sendKeys("\n"); Utils.retryingFind(By.id("count1-inputEl")).sendKeys("2" + "\n"); Utils.retryingFind( By.xpath("//span/span/span[contains(text(), '提交')]")) .click(); // 定位到弹出对话框的按钮 Utils.LocaAndWait(); } catch (Exception e) { e.printStackTrace(); Assert.fail(e.getMessage()); } } /** * 省医申请一次性物品 * */ @Test public void apply_gdsy_oneuse() { try { String SupplyRoomName = Utils.settings.getJSONObject("一级供应室用户") .getString("科室名称"); String currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); Utils.retryingFind( By.cssSelector("input[id='handleDepart-inputEl']")) .sendKeys(Keys.DOWN); Utils.retryingFind( By.xpath("//div/ul/li[contains(text(), '" + SupplyRoomName + "')]")).click(); Utils.retryingFind(By.cssSelector("input[name='package1']")) .sendKeys( Utils.settings.getJSONObject("一级供应室一次性物品") .getString("名称")); Utils.retryingFind(By.cssSelector("input[name='package1']")) .sendKeys("\n"); Utils.retryingFind(By.cssSelector("input[name='count1']")) .sendKeys("8" + "\n"); // 定位到弹出对话框的按钮 Utils.LocaAndWait(); Utils.retryingFind( By.xpath("//span/span/span[contains(text(), '提交')]")) .click(); // 定位到弹出对话框的按钮 Utils.LocaAndWait(); } catch (Exception e) { e.printStackTrace(); Assert.fail(e.getMessage()); } } /** * 申请外来器械有病人信息等 * */ @Test public void apply_foreignSetInformation() { try { String currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); Utils.retryingFind(By.cssSelector("input[name='patientArea']")) .sendKeys("3" + "\n"); Utils.retryingFind(By.cssSelector("input[name='roomNumber']")) .sendKeys("4" + "\n"); Utils.retryingFind(By.cssSelector("input[name='bedNumber']")) .sendKeys("5" + "\n"); Utils.retryingFind(By.cssSelector("input[name='patient']")) .sendKeys("6" + "\n"); Utils.retryingFind(By.cssSelector("input[name='patientAge']")) .sendKeys("7岁" + "\n"); Utils.retryingFind( By.cssSelector("input[name='ascriptionDepartment']")) .sendKeys("8" + "\n"); Utils.retryingFind(By.cssSelector("input[name='surgery']")) .sendKeys("9" + "\n"); Utils.retryingFind(By.cssSelector("input[name='operationTime']")) .sendKeys("2020-02-02 02:02" + "\n"); Utils.retryingFind(By.cssSelector("input[name='operationRoom']")) .sendKeys("10" + "\n"); Utils.retryingFind(By.cssSelector("input[name='doctor']")) .sendKeys("11" + "\n"); Utils.retryingFind(By.cssSelector("input[name='remark']")) .sendKeys("12" + "\n"); String name = Utils.settings.getJSONObject("一级供应室外来器械").getString( "名称"); Actions action = new Actions(Utils.driver); action.click( Utils.retryingFind(By .cssSelector("input[name='foreignTousseName1']"))) .sendKeys(name).perform(); action.click( Utils.retryingFind(By .xpath("//div/ul/li[contains(text(), '" + name + "')]"))).perform(); action.click( Utils.retryingFind(By.cssSelector("a[id='addTousseBt']"))) .perform(); Utils.retryingFind(By.cssSelector("input[name='hospitalNumber']")) .sendKeys("1" + "\n"); Utils.retryingFind(By.cssSelector("input[name='clinicNumber']")) .sendKeys("2" + "\n"); action.click( Utils.retryingFind(By .xpath("//span/span/span[contains(text(), '提交')]"))) .perform(); } catch (Exception e) { e.printStackTrace(); Assert.fail(e.getMessage()); } } /** * 直接申请外来器械 * */ @Test public void apply_foreignSet() { try { // Utils.retryingFind(By.xpath("//span[contains(text(), '取消')]")).click(); // WebElement frame = Utils.retryingFind(By // .id("iframe_recyclingApplication")); // Utils.driver.switchTo().frame(frame); // Utils.retryingFind( // By.xpath("//button[contains(text(), '申请外来器械')]")).click(); String currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); Actions action = new Actions(Utils.driver); String name = Utils.settings.getJSONObject("一级供应室外来器械").getString( "名称"); action.click( Utils.retryingFind(By .cssSelector("input[name='foreignTousseName1']"))) .sendKeys(name).perform(); action.click( Utils.retryingFind(By .xpath("//div/ul/li[contains(text(), '" + name + "')]"))).perform(); action.click( Utils.retryingFind(By.cssSelector("a[id='addTousseBt']"))) .perform(); action.click( Utils.retryingFind(By .xpath("//span/span/span[contains(text(), '提交')]"))) .perform(); } catch (Exception e) { e.printStackTrace(); Assert.fail(e.getMessage()); } } /** * 借物单 * */ @Test public void apply_borrow() { try { String SupplyRoomName = Utils.settings.getJSONObject("一级供应室用户") .getString("科室名称"); Utils.retryingFind(By.cssSelector("input[id='handleDepart']")) .sendKeys(Keys.DOWN); Utils.retryingFind(By.cssSelector("input[id='handleDepart']")) .sendKeys(Keys.DOWN); Utils.retryingFind( By.xpath("//div/div/div[contains(text(), '" + SupplyRoomName + "')]")).click(); Utils.retryingFind(By.cssSelector("input[name='leaseTousseName']")) .sendKeys( Utils.settings.getJSONObject("一级供应室器械包").getString( "名称")); Utils.retryingFind(By.cssSelector("input[name='leaseTousseName']")) .sendKeys("\n"); Utils.retryingFind(By.id("applicantAmount")).sendKeys("2" + "\n"); Utils.retryingFind(By.xpath("//button[contains(text(), '提交')]")) .click(); // 定位到弹出对话框的按钮 Wait wait = new FluentWait(Utils.driver) .withTimeout(30, TimeUnit.SECONDS) .pollingEvery(5, TimeUnit.SECONDS) .ignoring(NoSuchElementException.class); WebElement yesbutton = wait .until(new Function() { public WebElement apply(WebDriver driver) { return driver.findElement(By .xpath("//button[contains(text(), '是')]")); } }); yesbutton.click(); } catch (Exception e) { e.printStackTrace(); Assert.fail(e.getMessage()); } } /** * 借物单归还 * */ @Test public void apply_borrow_return() { try { Utils.retryingFind(By.id("borrowManager")).click(); WebElement frame = Utils .retryingFind(By.id("iframe_borrowManager")); Utils.driver.switchTo().frame(frame); Utils.retryingFind(By.cssSelector("input[value='归还物品']")).click(); String currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); Utils.retryingFind(By.xpath("//button[contains(text(), '保存')]")) .click(); // 定位到弹出对话框的按钮 Wait wait = new FluentWait(Utils.driver) .withTimeout(30, TimeUnit.SECONDS) .pollingEvery(5, TimeUnit.SECONDS) .ignoring(NoSuchElementException.class); WebElement yesbutton = wait .until(new Function() { public WebElement apply(WebDriver driver) { return driver.findElement(By .xpath("//button[contains(text(), '是')]")); } }); yesbutton.click(); } catch (Exception e) { e.printStackTrace(); Assert.fail(e.getMessage()); } } /** * 自定义器械申请 * */ @Test public void apply_custom() { try { WebElement frame = Utils.retryingFind(By .id("iframe_recyclingApplication")); Utils.driver.switchTo().frame(frame); Utils.retryingFind( By.xpath("//button[contains(text(), '申请自定义器械包')]")).click(); String currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); Utils.retryingFind(By.id("name")).sendKeys(Keys.DOWN); Utils.retryingFind(By.id("name")).sendKeys("\n"); Utils.retryingFind(By.id("saveBtn")).click(); } catch (Exception e) { e.printStackTrace(); Assert.fail(e.getMessage()); } } @AfterMethod public void after() { Utils.driver.quit(); } }