From c39107775b07f4bd98dffc8a970a4d077939be74 Mon Sep 17 00:00:00 2001 From: Administrator Date: Thu, 25 Oct 2018 14:28:44 +0800 Subject: [PATCH] by zengjin10-25 --- .gitignore | 1 + src/test/java/com/essa/framework/Model.java | 4 ++-- src/test/java/com/essa/pageObject/HomePage.java | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ src/test/java/com/essa/pageObject/PODocumentary/ConvertTailPage.java | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ src/test/java/com/essa/pageObject/PODocumentary/POBoardPage.java | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++++- src/test/java/com/essa/pageObject/PODocumentary/PODocumentaryListPage.java | 25 +++++++++++++++++++++++-- src/test/java/com/essa/pageObject/StorageManage/GoodsReceiveTaskPage.java | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ src/test/java/com/essa/pageObject/StorageManage/NoticeReceivePage.java | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/test/java/com/essa/pageObject/StorageManage/ReceiveTaskDealPage.java | 44 ++++++++++++++++++++++++++++++++++++++++++++ src/test/java/com/essa/pageObject/needDealt/NeedDealtApplyPage.java | 8 ++++++++ src/test/java/com/essa/testSuite/TestTail.java | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 11 files changed, 445 insertions(+), 5 deletions(-) create mode 100644 src/test/java/com/essa/pageObject/PODocumentary/ConvertTailPage.java create mode 100644 src/test/java/com/essa/pageObject/StorageManage/GoodsReceiveTaskPage.java create mode 100644 src/test/java/com/essa/pageObject/StorageManage/NoticeReceivePage.java create mode 100644 src/test/java/com/essa/pageObject/StorageManage/ReceiveTaskDealPage.java create mode 100644 src/test/java/com/essa/testSuite/TestTail.java diff --git a/.gitignore b/.gitignore index fbc20ef..8c0aeaa 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /Log/ /test-output/ +/target/ diff --git a/src/test/java/com/essa/framework/Model.java b/src/test/java/com/essa/framework/Model.java index f93810d..b15e05e 100644 --- a/src/test/java/com/essa/framework/Model.java +++ b/src/test/java/com/essa/framework/Model.java @@ -6,7 +6,7 @@ package com.essa.framework; */ public class Model { - public static String skuNo;//商品编号 + public static String skuNo="200056786";//商品编号 public static String buyerNo;//采购商编号 public static String supplierName;//供应商名称 public static String picPath;//图片路径 @@ -15,7 +15,7 @@ public class Model { public static String env;//所选环境 public static String buyerAccount;//采购商账号 public static String buyerPassword;//采购商密码 - public static String poNum;//po单号 + public static String poNum="A181107T9194B";//po单号 public static int isactivity=0;//是否是活动商品 1:是 0:否 public static String manager;//商品的类目经理 public static String serialNum;//待办流水号 diff --git a/src/test/java/com/essa/pageObject/HomePage.java b/src/test/java/com/essa/pageObject/HomePage.java index 9874385..b81fa37 100644 --- a/src/test/java/com/essa/pageObject/HomePage.java +++ b/src/test/java/com/essa/pageObject/HomePage.java @@ -12,6 +12,8 @@ import com.essa.pageObject.GoodsManage.GoodsBankPage; import com.essa.pageObject.GoodsManage.GoodsRelesePage; import com.essa.pageObject.GoodsManage.MarketGoodsRelesePage; import com.essa.pageObject.PODocumentary.PODocumentaryListPage; +import com.essa.pageObject.StorageManage.GoodsReceiveTaskPage; +import com.essa.pageObject.StorageManage.NoticeReceivePage; import com.essa.pageObject.buyPlaneManage.SkuCategoryManagerCongfigPage; import com.essa.pageObject.buyerManage.InvateCodePage; import com.essa.pageObject.inquiryManage.ProductInquiryTaskPage; @@ -132,6 +134,10 @@ public class HomePage extends BasePage{ @FindBy (xpath = "//*[@title='采购计划审核流程']") WebElement purchasePlaneProcess; + //待办中的“船务确认备选船期流程” + @FindBy (xpath = "//*[text()='船务确认备选船期流程']") + WebElement confirmDailingDate; + //第一条待办 @FindBy (xpath = "//*[@ng-table='tableParams']/tbody/tr[1]") WebElement firstNeedDealt; @@ -152,6 +158,18 @@ public class HomePage extends BasePage{ @FindBy (xpath ="//*[text()='PO跟单']") WebElement PODocumentary; + //仓储管理 + @FindBy (xpath = "//span[contains(text(),'仓储管理')]") + WebElement StorageManage; + + //收货通知 + @FindBy (xpath = "//a[@name='child.text'][contains(text(),'收货通知')]") + WebElement NoticeReceive; + + //收货任务管理 + @FindBy (xpath = "//a[contains(text(),'收货任务管理')]") + WebElement goodsReceiveTask; + /* * 方法 */ @@ -359,8 +377,39 @@ public class HomePage extends BasePage{ * @return PO跟单列表页 */ public PODocumentaryListPage toPoDocumentaryListPage() { + mywait(DocumentaryManage); click(DocumentaryManage); click(PODocumentary); return new PODocumentaryListPage(driver); } + + /** + * 进入收货通知页面 + * @return 收货通知页面 + */ + public NoticeReceivePage toNoticeReceivePage() { + click(StorageManage); + click(NoticeReceive); + return new NoticeReceivePage(driver); + } + + /** + * 进入收货任务管理 + * @return 收货任务管理页面 + */ + public GoodsReceiveTaskPage toGoodsReceiveTaskPage() { + click(StorageManage); + click(goodsReceiveTask); + return new GoodsReceiveTaskPage(driver); + } + /** + * 大跟单进入第一个需要确认备选船期的待办页面 + * @return 确认船期页面 + */ + public NeedDealtApplyPage toSailingDateConfirmPage() { + click(confirmDailingDate); + click(firstNeedDealt); + switchMoreWindow(); + return new NeedDealtApplyPage(driver); + } } \ No newline at end of file diff --git a/src/test/java/com/essa/pageObject/PODocumentary/ConvertTailPage.java b/src/test/java/com/essa/pageObject/PODocumentary/ConvertTailPage.java new file mode 100644 index 0000000..f40d784 --- /dev/null +++ b/src/test/java/com/essa/pageObject/PODocumentary/ConvertTailPage.java @@ -0,0 +1,51 @@ +package com.essa.pageObject.PODocumentary; + +import org.openqa.selenium.By; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; + +import com.essa.framework.BasePage; + +/** + * 转在途尾货页面 + * @author Administrator + * + */ +public class ConvertTailPage extends BasePage { + + public ConvertTailPage(WebDriver driver) { + super(driver); + } + /* + * 元素定位 + */ + @FindBy (xpath = "//*[@name='tailDeliveryDay']") + WebElement tailDeliveryDay;//尾货货期 + + @FindBy (xpath ="//*[@name='moveOutQuantity']") + WebElement moveOutQuantity;//转出箱数 + + @FindBy (xpath ="//button[text()='保存']") + WebElement save;//保存 + + @FindBy (xpath ="//button[text()='确定']") + WebElement confirm;//保存 + + /* + * 页面方法 + */ + /** + * 对sku转在途尾货 + * @return PO单看板页面 + */ + public POBoardPage convertTail() { + dynamicWait(By.xpath("//*[@name='tailDeliveryDay']")); + sendKeys(tailDeliveryDay, "7"); + sendKeys(moveOutQuantity, "2"); + click(save); + dynamicWait(By.xpath("//button[text()='确定']")); + click(confirm); + return new POBoardPage(driver); + } +} diff --git a/src/test/java/com/essa/pageObject/PODocumentary/POBoardPage.java b/src/test/java/com/essa/pageObject/PODocumentary/POBoardPage.java index 2e66b97..c10a74e 100644 --- a/src/test/java/com/essa/pageObject/PODocumentary/POBoardPage.java +++ b/src/test/java/com/essa/pageObject/PODocumentary/POBoardPage.java @@ -1,13 +1,65 @@ package com.essa.pageObject.PODocumentary; +import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; import com.essa.framework.BasePage; +import com.essa.framework.Model; +/** + * PO单看板页面 + * @author Administrator + * + */ public class POBoardPage extends BasePage { public POBoardPage(WebDriver driver) { super(driver); } - + + /* + * 元素定位 + */ + @FindBy (xpath = "//*[text()='订单任务看板']") + WebElement taskBoard;//订单任务看板 + + @FindBy (xpath = "//*[@ng-model='keyword']") + WebElement keyword;//关键字查询输入框 + + @FindBy (xpath ="//*[@ng-model='keyword']/../span/button") + WebElement search;//查询按钮 + + @FindBy (xpath = "//*[@id='detailView']/div/div[3]/div[1]/div/div/table/tbody/tr[1]/td/div[2]/div[1]/input") + WebElement firstCheckbox;//第一个复选框 + + @FindBy (xpath ="//button[contains(text(),'转在途尾货')]") + WebElement toTail;//转在途尾货按钮 + + @FindBy (xpath = "//button[contains(text(),'通知收货')]") + WebElement noticeReceive;//通知收货按钮 + + @FindBy (xpath ="//button[contains(text(),'通知装柜')]") + WebElement noticeLoad;//通知装柜按钮 + + /* + * 页面方法 + */ + /** + * 转在途尾货 + * @return 转在途尾货页面 + */ + public ConvertTailPage toTail() { + dynamicLoad(By.xpath("//*[style='display: block;']"));//等待页面加载完成 + click(taskBoard); + dynamicLoad(By.xpath("//*[style='display: block;']")); + sendKeys(keyword, Model.getSkuNo()); + click(search); + dynamicLoad(By.xpath("//*[style='display: block;']")); + click(firstCheckbox); + click(toTail); + return new ConvertTailPage(driver); + } + } diff --git a/src/test/java/com/essa/pageObject/PODocumentary/PODocumentaryListPage.java b/src/test/java/com/essa/pageObject/PODocumentary/PODocumentaryListPage.java index 1f8cade..0c551d4 100644 --- a/src/test/java/com/essa/pageObject/PODocumentary/PODocumentaryListPage.java +++ b/src/test/java/com/essa/pageObject/PODocumentary/PODocumentaryListPage.java @@ -1,10 +1,12 @@ package com.essa.pageObject.PODocumentary; +import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; import com.essa.framework.BasePage; +import com.essa.framework.Model; /** * @author Administrator @@ -22,6 +24,25 @@ public class PODocumentaryListPage extends BasePage { @FindBy (xpath = "//*[contains(text(),'高级查询')]") WebElement advancedQuery;//高级查询 - @FindBy (xpath = "//*[contains(@placeholder,'请输入PO单号')]") - WebElement OrderNo; + @FindBy (xpath = "//*[text()='PO单号:']/../div[1]/input") + WebElement OrderNo;//PO单号 + + @FindBy (xpath = "//*[text()='查询']") + WebElement search;//查询按钮 + + @FindBy (xpath = "//*[@id='listView']/div/table/tbody/tr[1]/td/div/div[1]/div/ul/li[1]/a") + WebElement detail;//搜索结果中的一个查看详情 + + /* + * 页面方法 + */ + public POBoardPage todetail() { + mywait(detail); + click(advancedQuery); + sendKeys(OrderNo, Model.getPoNum()); + click(search); + dynamicLoad(By.xpath("//*[style='display: block;']")); + click(detail); + return new POBoardPage(driver); + } } diff --git a/src/test/java/com/essa/pageObject/StorageManage/GoodsReceiveTaskPage.java b/src/test/java/com/essa/pageObject/StorageManage/GoodsReceiveTaskPage.java new file mode 100644 index 0000000..e2617a7 --- /dev/null +++ b/src/test/java/com/essa/pageObject/StorageManage/GoodsReceiveTaskPage.java @@ -0,0 +1,53 @@ +package com.essa.pageObject.StorageManage; + +import org.openqa.selenium.By; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; + +import com.essa.framework.BasePage; +import com.essa.framework.Model; + +/** + * 收货任务管理页面 + * @author Administrator + * + */ +public class GoodsReceiveTaskPage extends BasePage { + + public GoodsReceiveTaskPage(WebDriver driver) { + super(driver); + } + + /* + * 元素定位 + */ + @FindBy (xpath = "//*[@name='selectKey']") + WebElement keyword;//关键字查询 + + @FindBy (xpath = "//button[contains(@ng-click,'search')]") + WebElement search;//查询按钮 + + @FindBy (xpath = "//tbody/tr[1]") + WebElement firstResult;//列表第一个结果 + + @FindBy (xpath = "//button[contains(text(),'处理')]") + WebElement deal;//处理 + + /* + * 页面方法 + */ + /** + * 选择第一个筛选结果,点击处理 + * @return PO收货任务处理页 + */ + public GoodsReceiveTaskPage dealReceive() { + dynamicWait(By.xpath("//tbody/tr[1]")); + sendKeys(keyword, Model.getPoNum()); + click(search); + dynamicWait(By.xpath("//div[@style='display: none;' and @id='mask']")); + click(firstResult); + click(deal); + return new GoodsReceiveTaskPage(driver); + } +} diff --git a/src/test/java/com/essa/pageObject/StorageManage/NoticeReceivePage.java b/src/test/java/com/essa/pageObject/StorageManage/NoticeReceivePage.java new file mode 100644 index 0000000..02fc7cd --- /dev/null +++ b/src/test/java/com/essa/pageObject/StorageManage/NoticeReceivePage.java @@ -0,0 +1,75 @@ +package com.essa.pageObject.StorageManage; + +import org.openqa.selenium.By; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; + +import com.essa.framework.BasePage; +import com.essa.framework.Model; + +/** + * @author Administrator + *收货通知页面 + */ +public class NoticeReceivePage extends BasePage { + + public NoticeReceivePage(WebDriver driver) { + super(driver); + } + /* + * 元素定位 + */ + + @FindBy (xpath = "//input[@name='keyword']") + WebElement keyword;//关键字查询 + + @FindBy (xpath = "//button[contains(@ng-click,'search')]") + WebElement search;//查询按钮 + + @FindBy (xpath = "//td[@data-title=\"'PO装柜仓库'\"]//span[@class='ng-scope'][contains(text(),'设置')]") + WebElement set;//PO装柜仓库的“设置” + + @FindBy (xpath = "//*[@ng-click='chooseWarehouse(warehouse)']/../li[1]") + WebElement wareHouse;//仓库 + + @FindBy (xpath = "//*[@ng-click='chooseZone(zone)']/../li[1]") + WebElement zone;//区位 + + @FindBy (xpath = "//*[@ng-click='chooseShelf(shelf)']/../li[1]") + WebElement shelf;//货区 + + @FindBy (xpath = "//button[contains(text(),'确定')]") + WebElement confirm;//确定 + + @FindBy (xpath ="//button[@data-bb-handler='confirm']") + WebElement sysch;//是否同步提示框的确定按钮 + + @FindBy (xpath ="//button[@data-bb-handler='ok']") + WebElement succeed;//设置成功的确定按钮 + + /* + * 页面方法 + */ + + /** + * 设置装柜仓库 + */ + public void setWareHouse() { + dynamicWait(By.xpath("//div[@style='display: none;' and @id='mask']")); + sendKeys(keyword, Model.getPoNum()); + click(search); + dynamicWait(By.xpath("//div[@style='display: none;' and @id='mask']")); + click(set); + forceWait(500); + click(wareHouse); + click(zone); + click(shelf); + click(confirm); + forceWait(1000); + click(sysch); + forceWait(1000); + click(succeed); + } + +} diff --git a/src/test/java/com/essa/pageObject/StorageManage/ReceiveTaskDealPage.java b/src/test/java/com/essa/pageObject/StorageManage/ReceiveTaskDealPage.java new file mode 100644 index 0000000..dd4d9cb --- /dev/null +++ b/src/test/java/com/essa/pageObject/StorageManage/ReceiveTaskDealPage.java @@ -0,0 +1,44 @@ +package com.essa.pageObject.StorageManage; + +import org.openqa.selenium.By; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; + +import com.essa.framework.BasePage; + +/** + * PO收货任务处理页面 + * @author Administrator + * + */ +public class ReceiveTaskDealPage extends BasePage { + + public ReceiveTaskDealPage(WebDriver driver) { + super(driver); + } + + @FindBy (xpath = "//*[text()='全部完成收货']") + WebElement allReceive;//全部收货完成 + + @FindBy (xpath = "//*[text()='确定']") + WebElement confirm;//确定 + + /* + * 页面方法 + */ + /** + * 全部收货完成 + * @return 收货任务管理页 + */ + public GoodsReceiveTaskPage allReceive() { + forceWait(1000); + dynamicWait(By.xpath("//div[@style='display: none;' and @id='mask']")); + click(allReceive); + forceWait(500); + click(confirm); + forceWait(1000); + click(confirm); + return new GoodsReceiveTaskPage(driver); + } +} diff --git a/src/test/java/com/essa/pageObject/needDealt/NeedDealtApplyPage.java b/src/test/java/com/essa/pageObject/needDealt/NeedDealtApplyPage.java index fbf0ba1..f4e4ff2 100644 --- a/src/test/java/com/essa/pageObject/needDealt/NeedDealtApplyPage.java +++ b/src/test/java/com/essa/pageObject/needDealt/NeedDealtApplyPage.java @@ -103,4 +103,12 @@ public class NeedDealtApplyPage extends BasePage { dynamicLoad(By.xpath("//*[style='display: block;']")); return new HomePage(driver); } + + public HomePage confirmSailingDate() { + mywait(checkpoint); + forceWait(1000); + Model.setSerialNum(partialStr(serialNumber.getText(), "流水号:")); + click(confirm); + return new HomePage(driver); + } } diff --git a/src/test/java/com/essa/testSuite/TestTail.java b/src/test/java/com/essa/testSuite/TestTail.java new file mode 100644 index 0000000..a028698 --- /dev/null +++ b/src/test/java/com/essa/testSuite/TestTail.java @@ -0,0 +1,86 @@ +package com.essa.testSuite; + +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; + +import com.essa.pageObject.BaseTest; +import com.essa.pageObject.HomePage; +import com.essa.pageObject.PODocumentary.ConvertTailPage; +import com.essa.pageObject.PODocumentary.POBoardPage; +import com.essa.pageObject.PODocumentary.PODocumentaryListPage; +import com.essa.pageObject.StorageManage.GoodsReceiveTaskPage; +import com.essa.pageObject.StorageManage.NoticeReceivePage; +import com.essa.pageObject.StorageManage.ReceiveTaskDealPage; +import com.essa.pageObject.needDealt.NeedDealtApplyPage; + +public class TestTail extends BaseTest { + WebDriver driver; + + @BeforeClass + public void setUp() { + initsetUp(); + loginValid("yuwanhang"); + } + + @AfterClass + public void tearDown() { + driver.quit(); + } + + /** + * 转尾货 + */ + @Test + public void testTail() { + driver = getDriver(); + HomePage homePage = PageFactory.initElements(driver, HomePage.class); + PODocumentaryListPage poDocumentaryListPage = PageFactory.initElements(driver, PODocumentaryListPage.class); + POBoardPage poBoardPage = PageFactory.initElements(driver, POBoardPage.class); + ConvertTailPage convertTailPage = PageFactory.initElements(driver, ConvertTailPage.class); + homePage.toPoDocumentaryListPage(); + poDocumentaryListPage.todetail(); + poBoardPage.toTail(); + convertTailPage.convertTail(); + } + + /** + * 设置收货、装柜的仓库地址 + */ + @Test + public void noticReceive() { + driver = getDriver(); + HomePage homePage = PageFactory.initElements(driver, HomePage.class); + NoticeReceivePage noticeReceivePage = PageFactory.initElements(driver, NoticeReceivePage.class); + homePage.toNoticeReceivePage(); + noticeReceivePage.setWareHouse(); + } + + /** + * 收货通知处理 + */ + @Test + public void dealWithDelivery() { + driver = getDriver(); + HomePage homePage = PageFactory.initElements(driver, HomePage.class); + GoodsReceiveTaskPage goodsReceiveTaskPage = PageFactory.initElements(driver, GoodsReceiveTaskPage.class); + ReceiveTaskDealPage receiveTaskDealPage = PageFactory.initElements(driver, ReceiveTaskDealPage.class); + homePage.toGoodsReceiveTaskPage(); + goodsReceiveTaskPage.dealReceive(); + receiveTaskDealPage.allReceive(); + } + + /** + * 大跟单确认船期 + */ + @Test + public void confirmSailingDate() { + driver = getDriver(); + HomePage homePage = PageFactory.initElements(driver, HomePage.class); + NeedDealtApplyPage needDealtApplyPage = PageFactory.initElements(driver, NeedDealtApplyPage.class); + homePage.toSailingDateConfirmPage(); + needDealtApplyPage.confirmSailingDate(); + } +} -- libgit2 0.21.2