/** * */ 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.StaleElementReferenceException; 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.retryingFindAndClick(By.id("recyclingApplication")); WebElement frame = Utils.retryingFindAndSwitchToFrame(By .id("iframe_recyclingApplication")); Utils.retryingFindAndClick(By .xpath("//button[contains(text(), '申请物品')]")); Utils.driver.switchTo().defaultContent(); String currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); } /** * 点击打开申请后直接提交 * */ @Test public void apply_fail() { Utils.retryingFindAndClick(By.cssSelector("a[id='commitBtn']")); // assertTrue(Utils.retryingFind(By.xpath("msg-div22")).getText() // .contains("请填写申请的物品数量")); } /** * 向处理科室二级供应室申请器械包、敷料包、消毒物品 * */ @Test public void apply_secondSupplyRoom() { // 查询后输入数量 try { String SupplyRoomName = Utils.settings.getJSONObject("二级供应室用户") .getString("科室名称"); WebElement frame = Utils.retryingFindAndSwitchToFrame(By .id("iframe_recyclingApplication")); Utils.retryingFindAndClick(By .xpath("//button[contains(text(), '申请物品')]")); String currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); Utils.retryingFindAndSendKeys( By.cssSelector("input[id='handleDepart-inputEl']"), Keys.DOWN); Utils.retryingFindAndClick(By.xpath("//div/ul/li[contains(text(),'" + SupplyRoomName + "')]")); Utils.retryingFindAndSendKeys(By .cssSelector("input[name='package1']"), Utils.settings .getJSONObject("二级供应室敷料包").getString("名称")); Utils.retryingFindAndSendKeys( By.cssSelector("input[name='package1']"), "\n"); Utils.retryingFindAndSendKeys( By.cssSelector("input[name='count1']"), "2" + "\n"); Utils.retryingFind(By.cssSelector("input[name='package1']")) .clear(); Utils.retryingFindAndSendKeys(By .cssSelector("input[name='package1']"), Utils.settings .getJSONObject("二级供应室器械包").getString("名称")); Utils.retryingFindAndSendKeys( By.cssSelector("input[name='package1']"), "\n"); Utils.retryingFindAndSendKeys( By.cssSelector("input[name='count1']"), "2" + "\n"); // Utils.retryingFind( // By.cssSelector("input[name='urgentAmount']")).sendKeys( // "1" + "\n"); Utils.retryingFind(By.cssSelector("input[name='package1']")) .clear(); Utils.retryingFindAndSendKeys(By .cssSelector("input[name='package1']"), Utils.settings .getJSONObject("二级供应室消毒物品").getString("名称")); Utils.retryingFindAndSendKeys( By.cssSelector("input[name='package1']"), "\n"); Utils.retryingFindAndSendKeys( By.cssSelector("input[name='count1']"), "2" + "\n"); // // Utils.retryingFind( // By.cssSelector("input[name='urgentAmount']")).sendKeys( // "1" + "\n"); Utils.retryingFindAndClick(By.cssSelector("a[id='commitBtn']")); // 定位到弹出对话框的按钮 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.retryingFindAndSwitchToFrame(By .id("iframe_recyclingApplication")); Utils.retryingFindAndClick(By .xpath("//button[contains(text(), '申请物品')]")); String currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); Utils.retryingFindAndSendKeys( By.cssSelector("input[id='handleDepart-inputEl']"), Keys.DOWN); Utils.retryingFindAndClick(By .xpath("//div/ul/li[contains(text(), '" + SupplyRoomName + "')]")); Utils.retryingFindAndSendKeys(By .cssSelector("input[name='package1']"), Utils.settings .getJSONObject("一级供应室敷料包").getString("名称")); Utils.retryingFindAndSendKeys( By.cssSelector("input[name='package1']"), "\n"); Utils.retryingFindAndSendKeys( By.cssSelector("input[name='count1']"), "2" + "\n"); Utils.retryingFindAndSendKeys(By .cssSelector("input[name='package1']"), Utils.settings .getJSONObject("一级供应室一次性物品").getString("名称")); Utils.retryingFindAndSendKeys( By.cssSelector("input[name='package1']"), "\n"); Utils.retryingFindAndSendKeys( By.cssSelector("input[name='count1']"), "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.retryingFindAndSendKeys(By .cssSelector("input[name='package1']"), Utils.settings .getJSONObject("一级供应室消毒物品").getString("名称")); Utils.retryingFindAndSendKeys( By.cssSelector("input[name='package1']"), "\n"); Utils.retryingFindAndSendKeys( By.cssSelector("input[name='count1']"), "2" + "\n"); Utils.retryingFindAndSendKeys(By .cssSelector("input[name='package1']"), Utils.settings .getJSONObject("一级供应室消毒物品1").getString("名称")); Utils.retryingFindAndSendKeys( By.cssSelector("input[name='package1']"), "\n"); Utils.retryingFindAndSendKeys( By.cssSelector("input[name='count1']"), "2" + "\n"); // Utils.retryingFind( // By.cssSelector("input[name='urgentAmount']")).sendKeys( // "3" + "\n"); Utils.retryingFindAndClick(By.cssSelector("a[id='commitBtn']")); 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(5000, TimeUnit.MILLISECONDS) .pollingEvery(250, TimeUnit.MILLISECONDS) .ignoring(NoSuchElementException.class) .ignoring(StaleElementReferenceException.class); WebElement yesbutton = wait .until(new Function() { public WebElement apply(WebDriver driver) { JavascriptExecutor js=(JavascriptExecutor)driver; js.executeScript("return document.readyState").equals("complete"); 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.retryingFindAndClick(By.xpath("//span[contains(text(), '取消')]")); try { WebElement frame = Utils.retryingFindAndSwitchToFrame(By .id("iframe_recyclingApplication")); Utils.retryingFindAndClick(By .xpath("//button[contains(text(), '申请一次性物品')]")); 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.retryingFindAndSendKeys(By .cssSelector("input[name='package1']"), Utils.settings .getJSONObject("一级供应室一次性物品").getString("名称")); name.sendKeys("\n"); WebElement amount = Utils.retryingFindAndSendKeys( By.cssSelector("input[name='count1']"), "3"); amount.sendKeys("\n"); Utils.retryingFindAndClick(By.cssSelector("a[id='commitBtn']")); // 定位到弹出对话框的按钮 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.retryingFindAndClick(By .xpath("//button[contains(text(), '申请消毒物品')]")); String currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); String name = Utils.settings.getJSONObject("一级供应室用户").getString( "科室名称"); Utils.retryingFindAndSendKeys(By.id("handleDepart-inputEl"), Keys.DOWN); Utils.retryingFindAndClick(By .xpath("//div/ul/li[contains(text(), '" + name + "')]")); Utils.retryingFindAndSendKeys(By.id("package1-inputEl"), Utils.settings.getJSONObject("一级供应室消毒物品").getString("名称")); Utils.retryingFindAndSendKeys(By.id("count1-inputEl"), "2"); Utils.retryingFindAndSendKeys(By.id("package1-inputEl"), "\n"); Utils.retryingFindAndSendKeys(By.id("count1-inputEl"), "\n"); Utils.retryingFindAndSendKeys(By.id("package1-inputEl"), Utils.settings.getJSONObject("一级供应室消毒物品1").getString("名称")); Utils.retryingFindAndSendKeys(By.id("count1-inputEl"), "2"); Utils.retryingFindAndSendKeys(By.id("package1-inputEl"), "\n"); Utils.retryingFindAndClick(By .xpath("//span/span/span[contains(text(), '提交')]")); // 定位到弹出对话框的按钮 Utils.LocaAndWait(); } catch (Exception e) { e.printStackTrace(); Assert.fail(e.getMessage()); } } /** * 申请器械包、敷料包(分单) * */ @Test public void apply_set() { try { WebElement frame = Utils.retryingFindAndSwitchToFrame(By .id("iframe_recyclingApplication")); Utils.retryingFindAndClick(By .xpath("//button[contains(text(), '申请器械包')]")); String currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); String name = Utils.settings.getJSONObject("一级供应室用户").getString( "科室名称"); Utils.retryingFindAndSendKeys(By.id("handleDepart-inputEl"), Keys.DOWN); Utils.retryingFindAndClick(By .xpath("//div/ul/li[contains(text(), '" + name + "')]")); Utils.retryingFindAndSendKeys(By.id("package1-inputEl"), Utils.settings.getJSONObject("一级供应室器械包").getString("名称")); Utils.retryingFindAndSendKeys(By.id("package1-inputEl"), "\n"); Utils.retryingFindAndSendKeys(By.id("count1-inputEl"), "2" + "\n"); Utils.retryingFindAndSendKeys(By.id("package1-inputEl"), Utils.settings.getJSONObject("一级供应室敷料包").getString("名称")); Utils.retryingFindAndSendKeys(By.id("package1-inputEl"), "\n"); Utils.retryingFindAndSendKeys(By.id("count1-inputEl"), "2" + "\n"); Utils.retryingFindAndClick(By .xpath("//span/span/span[contains(text(), '提交')]")); // 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.retryingFindAndSwitchToFrame(By .id("iframe_recyclingApplication")); Utils.retryingFindAndClick(By .xpath("//button[contains(text(), '申请一次性物品')]")); String currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); String name = Utils.settings.getJSONObject("一级供应室用户").getString( "科室名称"); Utils.retryingFindAndSendKeys(By.id("handleDepart-inputEl"), Keys.DOWN); Utils.retryingFindAndClick(By .xpath("//div/ul/li[contains(text(), '" + name + "')]")); Utils.retryingFindAndSendKeys(By.id("package1-inputEl"), Utils.settings.getJSONObject("一级供应室一次性物品").getString("名称")); Utils.retryingFindAndSendKeys(By.id("package1-inputEl"), "\n"); Utils.retryingFindAndSendKeys(By.id("count1-inputEl"), "5" + "\n"); // 定位到弹出对话框的按钮 Utils.LocaAndWait(); Utils.retryingFindAndClick(By .xpath("//span/span/span[contains(text(), '提交')]")); // 定位到弹出对话框的按钮 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.retryingFindAndSendKeys( By.cssSelector("input[id='handleDepart-inputEl']"), Keys.DOWN); Utils.retryingFindAndClick(By .xpath("//div/ul/li[contains(text(), '" + SupplyRoomName + "')]")); /** * 开发测试用例暂无模板,暂时屏蔽 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(); **/ // 输入物品名称,package1为名称输入框 Utils.retryingFindComboBoxAndSendKeys(By .cssSelector("input[name='package1']"), Utils.settings .getJSONObject("一级供应室敷料包").getString("名称")); Utils.retryingFindAndSendKeys( By.cssSelector("input[name='package1']"), "\n"); Utils.retryingFindAndSendKeys( By.cssSelector("input[name='count1']"), "2" + "\n"); Utils.retryingFindComboBoxAndSendKeys(By .cssSelector("input[name='package1']"), Utils.settings .getJSONObject("一级供应室器械包3").getString("名称")); Utils.retryingFindAndSendKeys( By.cssSelector("input[name='package1']"), "\n"); Utils.retryingFindAndSendKeys( By.cssSelector("input[name='count1']"), "2" + "\n"); Utils.retryingFindAndClick(By .xpath("//span/span/span[contains(text(), '提交')]")); 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(5000, TimeUnit.MILLISECONDS) .pollingEvery(250, TimeUnit.MILLISECONDS) .ignoring(NoSuchElementException.class) .ignoring(StaleElementReferenceException.class); WebElement yesbutton = wait .until(new Function() { public WebElement apply(WebDriver driver) { JavascriptExecutor js=(JavascriptExecutor)driver; js.executeScript("return document.readyState").equals("complete"); 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.retryingFindAndSendKeys( By.cssSelector("input[id='handleDepart-inputEl']"), Keys.DOWN); Utils.retryingFindAndClick(By .xpath("//div/ul/li[contains(text(), '" + SupplyRoomName + "')]")); Utils.retryingFindComboBoxAndSendKeys(By.id("package1-inputEl"), Utils.settings.getJSONObject("一级供应室消毒物品").getString("名称")); // 休眠,等待下拉框出现 Thread.sleep(1000); Utils.retryingFindAndSendKeys(By.id("package1-inputEl"), "\n"); Utils.retryingFindAndSendKeys(By.id("count1-inputEl"), "2" + "\n"); Utils.retryingFindComboBoxAndSendKeys(By.id("package1-inputEl"), Utils.settings.getJSONObject("一级供应室消毒物品1").getString("名称")); Utils.retryingFindAndSendKeys(By.id("package1-inputEl"), "\n"); Utils.retryingFindAndSendKeys(By.id("count1-inputEl"), "2" + "\n"); Utils.retryingFindAndClick(By .xpath("//span/span/span[contains(text(), '提交')]")); // 定位到弹出对话框的按钮 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.retryingFindAndSendKeys( By.cssSelector("input[id='handleDepart-inputEl']"), Keys.DOWN); Utils.retryingFindAndClick(By .xpath("//div/ul/li[contains(text(), '" + SupplyRoomName + "')]")); Utils.retryingFindComboBoxAndSendKeys(By .cssSelector("input[name='package1']"), Utils.settings .getJSONObject("一级供应室一次性物品").getString("名称")); Utils.retryingFindAndSendKeys( By.cssSelector("input[name='package1']"), "\n"); Utils.retryingFindAndSendKeys( By.cssSelector("input[name='count1']"), "8" + "\n"); // 定位到弹出对话框的按钮 Utils.LocaAndWait(); Utils.retryingFindAndClick(By .xpath("//span/span/span[contains(text(), '提交')]")); // 定位到弹出对话框的按钮 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.retryingFindAndSendKeys( By.cssSelector("input[name='patientArea']"), "3" + "\n"); Utils.retryingFindAndSendKeys( By.cssSelector("input[name='roomNumber']"), "4" + "\n"); Utils.retryingFindAndSendKeys( By.cssSelector("input[name='bedNumber']"), "5" + "\n"); Utils.retryingFindAndSendKeys( By.cssSelector("input[name='patient']"), "6" + "\n"); Utils.retryingFindAndSendKeys( By.cssSelector("input[name='patientAge']"), "7岁" + "\n"); Utils.retryingFindAndSendKeys( By.cssSelector("input[name='ascriptionDepartment']"), "8" + "\n"); Utils.retryingFindAndSendKeys( By.cssSelector("input[name='surgery']"), "9" + "\n"); Utils.retryingFindAndSendKeys( By.cssSelector("input[name='operationTime']"), "2020-02-02 02:02" + "\n"); Utils.retryingFindAndSendKeys( By.cssSelector("input[name='operationRoom']"), "10" + "\n"); Utils.retryingFindAndSendKeys( By.cssSelector("input[name='doctor']"), "11" + "\n"); Utils.retryingFindAndSendKeys( By.cssSelector("input[name='remark']"), "12" + "\n"); String name = Utils.settings.getJSONObject("一级供应室外来器械").getString( "名称"); WebElement element = Utils.retryingFindAndClick(By .cssSelector("input[name='foreignTousseName1']")); Thread.sleep(1000); element.sendKeys(name); Utils.retryingFindAndClick(By .xpath("//div/ul/li[contains(text(), '" + name + "')]")); Utils.retryingFindAndClick(By.cssSelector("a[id='addTousseBt']")); Utils.retryingFindAndSendKeys( By.cssSelector("input[name='hospitalNumber']"), "1" + "\n"); Utils.retryingFindAndSendKeys( By.cssSelector("input[name='clinicNumber']"), "2" + "\n"); Utils.retryingFindAndClick(By .xpath("//span/span/span[contains(text(), '提交')]")); } catch (Exception e) { e.printStackTrace(); Assert.fail(e.getMessage()); } } /** * 直接申请外来器械 * */ @Test public void apply_foreignSet() { try { // Utils.retryingFindAndClick(By.xpath("//span[contains(text(), '取消')]")); // 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.retryingFindAndClick( By.cssSelector("input[name='foreignTousseName1']")) .sendKeys(name); Utils.retryingFindAndClick(By .xpath("//div/ul/li[contains(text(), '" + name + "')]")); Utils.retryingFindAndClick(By.cssSelector("a[id='addTousseBt']")); Utils.retryingFindAndClick(By .xpath("//span/span/span[contains(text(), '提交')]")); Thread.sleep(1500); } catch (Exception e) { e.printStackTrace(); Assert.fail(e.getMessage()); } } /** * 借物单 * */ @Test public void apply_borrow() { try { String SupplyRoomName = Utils.settings.getJSONObject("一级供应室用户") .getString("科室名称"); Utils.retryingFindAndSendKeys( By.cssSelector("input[id='handleDepart']"), Keys.DOWN); Utils.retryingFindAndSendKeys( By.cssSelector("input[id='handleDepart']"), Keys.DOWN); Utils.retryingFindAndClick(By .xpath("//div/div/div[contains(text(), '" + SupplyRoomName + "')]")); Utils.retryingFindComboBoxAndSendKeys( By.cssSelector("input[name='leaseTousseName']"), Utils.settings.getJSONObject("一级供应室器械包2").getString("名称")); Utils.retryingFindAndSendKeys(By.id("applicantAmount"), "2"); Utils.retryingFindAndSendKeys( By.cssSelector("input[name='leaseTousseName']"), "\n"); Utils.retryingFindAndSendKeys(By.id("applicantAmount"), "\n"); Utils.retryingFindAndClick(By .xpath("//button[contains(text(), '提交')]")); // 定位到弹出对话框的按钮 Wait wait = new FluentWait(Utils.driver) .withTimeout(5000, TimeUnit.MILLISECONDS) .pollingEvery(250, TimeUnit.MILLISECONDS) .ignoring(NoSuchElementException.class) .ignoring(StaleElementReferenceException.class); wait.until(new Function() { public WebElement apply(WebDriver driver) { JavascriptExecutor js=(JavascriptExecutor)driver; js.executeScript("return document.readyState").equals("complete"); return Utils.retryingFindAndClick(By .xpath("//button[contains(text(), '是')]")); } }); } catch (Exception e) { e.printStackTrace(); Assert.fail(e.getMessage()); } } /** * 借物单归还 * */ @Test public void apply_borrow_return() { try { Utils.retryingFindAndClick(By.id("borrowManager")); WebElement frame = Utils.retryingFindAndSwitchToFrame(By .id("iframe_borrowManager")); boolean displayed = false; WebElement element = Utils.retryingFind(By .cssSelector("input[value='归还物品']")); if (element != null) { displayed = element.isDisplayed(); if (displayed) { Utils.retryingFindAndClick(By .cssSelector("input[value='归还物品']")); String currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); Utils.retryingFindAndClick(By .xpath("//button[contains(text(), '保存')]")); // 定位到弹出对话框的按钮 Wait wait = new FluentWait( Utils.driver) .withTimeout(5000, TimeUnit.MILLISECONDS) .pollingEvery(250, TimeUnit.MILLISECONDS) .ignoring(NoSuchElementException.class) .ignoring(StaleElementReferenceException.class); WebElement yesbutton = wait .until(new Function() { public WebElement apply(WebDriver driver) { JavascriptExecutor js=(JavascriptExecutor)driver; js.executeScript("return document.readyState").equals("complete"); 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.retryingFindAndSwitchToFrame(By .id("iframe_recyclingApplication")); Utils.retryingFindAndClick(By .xpath("//button[contains(text(), '申请自定义器械包')]")); String currentwindowhandle = Utils.driver.getWindowHandle(); Utils.driver.switchTo().window(currentwindowhandle); Utils.retryingFindAndSendKeys(By.id("name"), Keys.DOWN); Utils.retryingFindAndSendKeys(By.id("name"), "\n"); Utils.retryingFindAndClick(By.id("saveBtn")); } catch (Exception e) { e.printStackTrace(); Assert.fail(e.getMessage()); } } @AfterMethod public void after() { Utils.driver.quit(); } }