From 0e4d02cb24161b0953fa097446c7f468312f177b Mon Sep 17 00:00:00 2001 From: toby5221 Date: Tue, 30 Oct 2018 13:45:57 +0800 Subject: [PATCH] 增加装柜任务形成现存尾货 --- src/main/java/com/essa/framework/BasePage.java | 22 +++++++++++++++++++--- src/main/java/com/essa/pageObject/HomePage.java | 17 +++++++++++++++++ src/main/java/com/essa/pageObject/StorageManage/LoadContainerHandlePage.java | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/essa/pageObject/StorageManage/LoadContainerManagePage.java | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/essa/testSuite/TestLoadContainerTask.java | 42 ++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/essa/testSuite/TestNoticeReceiveAndLoad.java | 1 + 6 files changed, 200 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/essa/pageObject/StorageManage/LoadContainerHandlePage.java create mode 100644 src/main/java/com/essa/pageObject/StorageManage/LoadContainerManagePage.java create mode 100644 src/main/java/com/essa/testSuite/TestLoadContainerTask.java diff --git a/src/main/java/com/essa/framework/BasePage.java b/src/main/java/com/essa/framework/BasePage.java index d760376..c6ea218 100644 --- a/src/main/java/com/essa/framework/BasePage.java +++ b/src/main/java/com/essa/framework/BasePage.java @@ -74,7 +74,6 @@ public class BasePage { } catch (Exception e) { Logger.Output(LogType.LogTypeName.ERROR, element.toString()+"元素不存在"); } - } /** @@ -483,7 +482,24 @@ public class BasePage { Logger.Output(LogType.LogTypeName.INFO, "返回切片后的字符串"); return search_need; } - + + /** + * 字符串切片 + * @param element 需要被操作的元素 + * @param begin 从这个字符开始切 + * @param end 到这个字符结尾 + * @return + */ + protected String partiaStr(WebElement element,int begin,int end){ + String Str = element.getText(); + System.out.print("获取所需切片的字符串:"); + // 对字符串切片,保留begin之后,end之前的字符串 + System.out.println(Str.subSequence(begin,end)); + // 把切片值作为结果并返回 + String search_need = (String) Str.subSequence(begin,end); + return search_need; + } + /** * 复写切片,仅在本页面作为截断日志文本后面带的一堆字符串 * @param string @@ -494,7 +510,7 @@ public class BasePage { String st1 = string.split(begin)[1]; return st1; } - + /**要的元素是否存在,最多5秒 * @param element */ diff --git a/src/main/java/com/essa/pageObject/HomePage.java b/src/main/java/com/essa/pageObject/HomePage.java index 0fd068f..e17b739 100644 --- a/src/main/java/com/essa/pageObject/HomePage.java +++ b/src/main/java/com/essa/pageObject/HomePage.java @@ -1,6 +1,7 @@ package com.essa.pageObject; import com.essa.pageObject.DocumentaryManage.POBoardPage; +import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; @@ -175,6 +176,10 @@ public class HomePage extends BasePage{ @FindBy (xpath = "//a[contains(text(),'收货任务管理')]") WebElement goodsReceiveTask; + //装柜任务管理 + @FindBy (xpath = "//a[@name='child.text'][contains(text(),'装柜任务管理')]") + WebElement loadContainerTask; + /* * 方法 */ @@ -418,6 +423,18 @@ public class HomePage extends BasePage{ } /** + * 进入装柜任务处理管理页面 + * @return 返回装柜任务处理管理页面 + */ + public NeedDealtApplyPage toLoadContainer(){ + click(StorageManage); + click(loadContainerTask); + dynamicWait(By.xpath("//div[@class='loading ng-scope']")); + forceWait(3000); + return new NeedDealtApplyPage(driver); + } + + /** * 登记备选船期待办 * @return 进入登记船务船期待办详情页面 */ diff --git a/src/main/java/com/essa/pageObject/StorageManage/LoadContainerHandlePage.java b/src/main/java/com/essa/pageObject/StorageManage/LoadContainerHandlePage.java new file mode 100644 index 0000000..585e921 --- /dev/null +++ b/src/main/java/com/essa/pageObject/StorageManage/LoadContainerHandlePage.java @@ -0,0 +1,70 @@ +package com.essa.pageObject.StorageManage; + +import com.essa.framework.BasePage; +import com.essa.framework.Model; +import org.openqa.selenium.By; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; + +import java.util.Date; + + +/** + * 装柜任务处理 + */ +public class LoadContainerHandlePage extends BasePage { + + public LoadContainerHandlePage(WebDriver driver){ + super(driver); + } + + /** + * 元素定位 + */ + // 实装柜日期 + @FindBy (xpath = "//input[@id='loadCompleteDate']") + WebElement actLoadTime; + + // 可装柜箱数 + @FindBy (xpath = "//tr[@class='ng-scope']//td[6]") + WebElement mayLoadQuantity; + + // 实装箱数 + @FindBy (xpath = "//input[@id='actLoadBoxQuantity']") + WebElement actLoadQuantity; + + // 点击选择文件 + @FindBy (xpath ="//div[@id='rt_rt_1cqvbp0jn14kfb41keb187l1u8oh']//label" ) + WebElement actPicture; + + // 提交 + @FindBy (xpath = "//*[text()='提交']") + WebElement submit; + + /** + * 页面方法 + */ + public LoadContainerHandlePage loadTaskHandle(){ + jsExecutorRemoveAttribute(actLoadTime,"readonly"); + String date = getDateTimeByFormat(new Date(), "MM/dd/yyyy"); + sendKeys(actLoadTime,date); + // 获取‘可装柜数量’字符串中的数量 + String qua = partiaStr(mayLoadQuantity,0,1); + // 对切片结果进行int转换 + int i = Integer.valueOf(qua).intValue(); + // 形成现存尾货‘2’ + int j = i-2; + // 对计算结果转换成string,并赋值给“实装柜数量” + String quantity = String.valueOf(j); + sendKeys(actLoadQuantity,quantity); + forceWait(1000); + // 上传装柜图片 + click(actPicture); + uploadFile(Model.getPicPath()); + forceWait(1000); + click(submit); + forceWait(2000); + return new LoadContainerHandlePage(driver); + } +} diff --git a/src/main/java/com/essa/pageObject/StorageManage/LoadContainerManagePage.java b/src/main/java/com/essa/pageObject/StorageManage/LoadContainerManagePage.java new file mode 100644 index 0000000..810d27a --- /dev/null +++ b/src/main/java/com/essa/pageObject/StorageManage/LoadContainerManagePage.java @@ -0,0 +1,51 @@ +package com.essa.pageObject.StorageManage; + +import com.essa.framework.BasePage; +import com.essa.framework.Model; +import net.bytebuddy.asm.Advice; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; + +public class LoadContainerManagePage extends BasePage { + + public LoadContainerManagePage(WebDriver driver) { + super(driver); + } + + /** + * 元素定位 + */ + + // 关键字搜索输入框 + @FindBy(xpath = "//input[@placeholder='请输入PO单号或采购商编号,多个请用空格隔开']") + WebElement inputKeySearch; + + // 放大镜搜索按钮 + @FindBy(xpath = "//*[@class='iconfont icon-search']") + WebElement keySearch; + + // 选中查询的第一条数据 + @FindBy (xpath = "//td[@title='待处理']") + WebElement firstPO; + + // 处理 + @FindBy(xpath = "//*[text()='处理']") + WebElement handle; + + /** + * 页面方法 + * + * @return + */ + public LoadContainerManagePage toLoadContainerDetail() { + sendKeys(inputKeySearch, Model.getPoNum()); + forceWait(5000); + click(keySearch); + forceWait(2000); + click(firstPO); + forceWait(2000); + click(handle); + return new LoadContainerManagePage(driver); + } +} diff --git a/src/main/java/com/essa/testSuite/TestLoadContainerTask.java b/src/main/java/com/essa/testSuite/TestLoadContainerTask.java new file mode 100644 index 0000000..97b92c6 --- /dev/null +++ b/src/main/java/com/essa/testSuite/TestLoadContainerTask.java @@ -0,0 +1,42 @@ +package com.essa.testSuite; + +import com.essa.pageObject.BaseTest; +import com.essa.pageObject.HomePage; +import com.essa.pageObject.StorageManage.LoadContainerHandlePage; +import com.essa.pageObject.StorageManage.LoadContainerManagePage; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.support.PageFactory; +import org.testng.annotations.AfterClass; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + +public class TestLoadContainerTask extends BaseTest { + + WebDriver driver; + + @BeforeClass + public void setUp(){ + initsetUp(); + loginValid("chenyijie"); + } + + @AfterClass + public void tearDown(){ + driver.quit(); + } + + /** + * 装柜任务处理 + */ + @Test(description="装柜任务处理") + public void LoadContainerTask() { + this.driver = getDriver(); + HomePage homePage = PageFactory.initElements(driver,HomePage.class); + homePage.toLoadContainer(); + LoadContainerManagePage loadContainerManagePage = PageFactory.initElements(driver,LoadContainerManagePage.class); + loadContainerManagePage.toLoadContainerDetail(); + LoadContainerHandlePage loadContainerHandlePage = PageFactory.initElements(driver,LoadContainerHandlePage.class); + loadContainerHandlePage.loadTaskHandle(); + homePage.logout(); + } +} diff --git a/src/main/java/com/essa/testSuite/TestNoticeReceiveAndLoad.java b/src/main/java/com/essa/testSuite/TestNoticeReceiveAndLoad.java index 7ee5976..0535b16 100644 --- a/src/main/java/com/essa/testSuite/TestNoticeReceiveAndLoad.java +++ b/src/main/java/com/essa/testSuite/TestNoticeReceiveAndLoad.java @@ -55,6 +55,7 @@ public class TestNoticeReceiveAndLoad extends BaseTest{ SoftAssert anAssert = new SoftAssert(); anAssert.assertEquals(actualLoae,true,"通知装柜失败!"); anAssert.assertAll(); + homePage.logout(); } } -- libgit2 0.21.2