diff --git a/src/main/java/com/buyer/pageObject/PayDepositPage.java b/src/main/java/com/buyer/pageObject/PayDepositPage.java index 44d3b9a..a469865 100644 --- a/src/main/java/com/buyer/pageObject/PayDepositPage.java +++ b/src/main/java/com/buyer/pageObject/PayDepositPage.java @@ -52,11 +52,9 @@ public class PayDepositPage extends BasePage { } public void operate() { - /*while (!(isVisibility(By.xpath("//*[contains(text(),'PO information')]")))) { - forceWait(1000); - }*/ dynamicWait(By.xpath("//*[contains(text(),'PO information')]")); Model.setPoNum(poNum.getText()); + if (isVisibility(By.xpath("//button[@class='submit-payment-deposit-button btn btn-primary']"))) { //如果是可用资金不足,跳转到资金管理 toAssetManagementPage(); diff --git a/src/main/java/com/essa/framework/BasePage.java b/src/main/java/com/essa/framework/BasePage.java index 7251a34..f2b7c24 100644 --- a/src/main/java/com/essa/framework/BasePage.java +++ b/src/main/java/com/essa/framework/BasePage.java @@ -520,6 +520,16 @@ public class BasePage { // Logger.Output(LogType.LogTypeName.INFO, "等待元素在页面上加载可见,最多5秒"); wait.until(ExpectedConditions.visibilityOf(element)); } + + /**要的元素是否存在,传递元素表达式,最多5秒 + * @param + */ + protected void mywait(By by) { + + WebDriverWait wait = new WebDriverWait(driver, 7); +// Logger.Output(LogType.LogTypeName.INFO, "等待元素在页面上加载可见,最多5秒"); + wait.until(ExpectedConditions.visibilityOf(driver.findElement(by))); + } /** * 设立检查点,判断页面是否是我们要的 @@ -665,8 +675,8 @@ public class BasePage { * @param by */ protected void dynamicWait(By by) { - for(int count=0;count<7&&!(isVisibility(by));count++) { - forceWait(1000); + for(int count=0;count<14&&!(isVisibility(by));count++) { + forceWait(500); } } // /** @@ -681,8 +691,8 @@ public class BasePage { * @param by */ protected void dynamicLoad(By by) { - for(int count=0;count<7&&isVisibility(by);count++) { - forceWait(1000); + for(int count=0;count<14&&isVisibility(by);count++) { + forceWait(500); } } /** diff --git a/src/main/java/com/essa/framework/Model.java b/src/main/java/com/essa/framework/Model.java index f2654d7..bcf8b32 100644 --- a/src/main/java/com/essa/framework/Model.java +++ b/src/main/java/com/essa/framework/Model.java @@ -9,20 +9,29 @@ public class Model { public static String skuNo;//商品编号 public static String buyerNo;//采购商编号 public static String supplierName;//供应商名称 - public static String picPath = "C:\\Users\\Administrator\\Pictures\\Camera Roll\\ya.jpg";//图片路径 + public static String picPath;//图片路径 public static String email = "buyer"+Tools.getTime()+"@essa.cn";//采购商邮箱 public static String invateCode;//邀请码 public static String env;//所选环境 - public static String buyerAccount="meng18@essa.cn";//采购商账号 - public static String buyerPassword="essa123";//采购商密码 - public static String poNum="A181115T9194K";//po单号 + public static String buyerAccount;//采购商账号 + public static String buyerPassword;//采购商密码 + public static String poNum = "DK180126T0278";//po单号 public static int isactivity=0;//是否是活动商品 1:是 0:否 public static String manager;//商品的类目经理 - public static String serialNum="RW2018060800058";//待办流水号 + public static String serialNum;//待办流水号 public static String materialName;//物料名称 public static String projectName;//项目立项书名称 + public static String salesman="yanqingping";//业务员 - public static String getProjectName() { + public static String getSalesman() { + return salesman; + } + + public static void setSalesman(String salesman) { + Model.salesman = salesman; + } + + public static String getProjectName() { return projectName; } diff --git a/src/main/java/com/essa/framework/SuitesEnum.java b/src/main/java/com/essa/framework/SuitesEnum.java index 88487f1..da4a3b0 100644 --- a/src/main/java/com/essa/framework/SuitesEnum.java +++ b/src/main/java/com/essa/framework/SuitesEnum.java @@ -19,7 +19,8 @@ public enum SuitesEnum { ACTIVITY_SEND_PO("ACTIVITY_SEND_PO","activitySendPO.xml","生成PO(活动)"), SEND_PO("SEND_PO","sendPO.xml","生成PO(正常)"), PO_INQUIRY("PO_INQUIRY","POInquiry.xml","PO询价"), - ADD_DEV_GOODS("ADD_DEV_GOODS","addDevGoods.xml","新增开发商品"); + ADD_DEV_GOODS("ADD_DEV_GOODS","addDevGoods.xml","新增开发商品"), + LOAD_FINISH("LOAD_FINISH","LoadContainer.xml","装柜完成"); ; /** diff --git a/src/main/java/com/essa/framework/Tools.java b/src/main/java/com/essa/framework/Tools.java index 6126c89..2a93139 100644 --- a/src/main/java/com/essa/framework/Tools.java +++ b/src/main/java/com/essa/framework/Tools.java @@ -1,6 +1,8 @@ package com.essa.framework; import java.text.SimpleDateFormat; +import java.time.Year; +import java.util.Calendar; import java.util.Date; public class Tools { @@ -37,5 +39,52 @@ public class Tools { int i = (int)(1+Math.random()*(10-1+1)); return time+i; } - + /** + *获取当前时间的下一个月 + * @param + * @return String 格式化后的时间 + */ + public static String getNextMonth(){ + Date today = new Date(); + Calendar cal = Calendar.getInstance(); + cal.setTime(today); + cal.add(Calendar.MONTH,1); + return myForm(cal); + } + /** + *获取当前时间+i天,传入的i为当前时间往后推的天数 + * @param + * @return String + */ + public static String moreDays(int i){ + Date today = new Date(); + Calendar cal = Calendar.getInstance(); + cal.setTime(today); + cal.add(Calendar.DATE,i); + return myForm(cal); + } + + /** + *获取格式化后的当天 + * @param + * @return String + */ + public static String getToday(){ + Date today = new Date(); + Calendar cal = Calendar.getInstance(); + cal.setTime(today); + return myForm(cal); + } + + /** + *由于bpms系统遇到日期中“天”为0开头时无法输入,故自己写一个格式 + * @param + * @return + */ + public static String myForm(Calendar cal){ + int day = cal.get(Calendar.DATE); + int month = cal.get(Calendar.MONTH)+1; + int year = cal.get(Calendar.YEAR); + return month+"/"+day+"/"+ year; + } } diff --git a/src/main/java/com/essa/pageObject/DocumentaryManage/POBoardPage.java b/src/main/java/com/essa/pageObject/DocumentaryManage/POBoardPage.java index 2c2716b..ffbaa50 100644 --- a/src/main/java/com/essa/pageObject/DocumentaryManage/POBoardPage.java +++ b/src/main/java/com/essa/pageObject/DocumentaryManage/POBoardPage.java @@ -1,6 +1,7 @@ package com.essa.pageObject.DocumentaryManage; import com.essa.framework.Model; +import com.essa.framework.Tools; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; @@ -9,7 +10,11 @@ import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; import java.util.Date; - +/** +* @Description: Po看板页面 +* @Author: ZengJin +* @CreateTime: 2018/11/1 +*/ public class POBoardPage extends BasePage { public POBoardPage(WebDriver driver) { @@ -88,8 +93,7 @@ public class POBoardPage extends BasePage { public POBoardPage noticeReceive(){ click(noticeReceive); jsExecutorRemoveAttribute(inputReceiveDate,"readonly"); - String date = getDateTimeByFormat(new Date(),"MM/dd/yyyy"); - sendKeys(inputReceiveDate,date); + sendKeys(inputReceiveDate, Tools.getToday()); click(reveiveDate); click(submit); return new POBoardPage(driver); @@ -104,8 +108,7 @@ public class POBoardPage extends BasePage { public POBoardPage noticeLoad(){ click(noticeLoad); jsExecutorRemoveAttribute(inutLoadDate,"readonly"); - String date = getDateTimeByFormat(new Date(),"MM/dd/yyyy"); - sendKeys(inutLoadDate,date); + sendKeys(inutLoadDate,Tools.getToday()); click(loadDate); forceWait(1000); click(submit); diff --git a/src/main/java/com/essa/pageObject/HomePage.java b/src/main/java/com/essa/pageObject/HomePage.java index ccef8b3..034c037 100644 --- a/src/main/java/com/essa/pageObject/HomePage.java +++ b/src/main/java/com/essa/pageObject/HomePage.java @@ -200,7 +200,7 @@ public class HomePage extends BasePage{ WebElement LogisticsskippBoard; //船务看板 - @FindBy (xpath = "//*[@id='essa-left-menu']/div/dl[1]/dd[2]") + @FindBy (xpath = "//*[text()='船务看板']") WebElement skippBoard; @@ -444,6 +444,7 @@ public class HomePage extends BasePage{ */ public NeedDealtApplyPage toSailingDateConfirmPage() { click(confirmDailingDate); + forceWait(1000); click(firstNeedDealt); switchMoreWindow(); return new NeedDealtApplyPage(driver); @@ -541,11 +542,22 @@ public class HomePage extends BasePage{ *进入船务看板界面 */ public LogisticsShippPage toLogisticsShippPage(){ - mywait(LogisticsskippBoard); +// mywait(LogisticsskippBoard); click(LogisticsskippBoard); - mywait(skippBoard); +// forceWait(1000); click(skippBoard); +// jsExecutorClick(skippBoard); return new LogisticsShippPage(driver); } + /** + *业务员进入待办详情页,填写船务资料 + * @param + * @return + */ + public NeedDealtApplyPage toWriteShipping() { + click(firstNeedDealt); + switchMoreWindow(); + return new NeedDealtApplyPage(driver); + } } \ No newline at end of file diff --git a/src/main/java/com/essa/pageObject/LogisticShipp/BookingCarPage.java b/src/main/java/com/essa/pageObject/LogisticShipp/BookingCarPage.java index 224287b..b1b4cc6 100644 --- a/src/main/java/com/essa/pageObject/LogisticShipp/BookingCarPage.java +++ b/src/main/java/com/essa/pageObject/LogisticShipp/BookingCarPage.java @@ -1,6 +1,8 @@ package com.essa.pageObject.LogisticShipp; import com.essa.framework.BasePage; +import com.essa.framework.Model; +import com.essa.framework.Tools; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; @@ -13,7 +15,7 @@ public class BookingCarPage extends BasePage { } //订车看板 - @FindBy(xpath = "//*[@id='tableViewList']/div/div/div/ul/li[4]") + @FindBy(xpath = "//*[text()='订车']") WebElement BookingCarBoard; //查询条件 @@ -47,16 +49,16 @@ public class BookingCarPage extends BasePage { public BookingCarPage toBookingCarPage() { mywait(BookingCarBoard); click(BookingCarBoard); - SetQuery.sendKeys("D180411T0278"); + SetQuery.sendKeys(Model.getPoNum()); click(QueryBtn); forceWait(1000); click(QueryRsult); click(BookingCarBtn); mywait(BookingCarSeclType); click(BookingCarSeclType); - mywait(BookingCarDate); +// mywait(BookingCarDate); jsExecutorRemoveAttribute(BookingCarDate, "readonly"); - sendKeys(BookingCarDate, "2018/10/23"); + sendKeys(BookingCarDate, Tools.getToday()); click(SubmitBtn); return new BookingCarPage(driver); } diff --git a/src/main/java/com/essa/pageObject/LogisticShipp/CabinInfoPage.java b/src/main/java/com/essa/pageObject/LogisticShipp/CabinInfoPage.java index 2954cae..6e1096f 100644 --- a/src/main/java/com/essa/pageObject/LogisticShipp/CabinInfoPage.java +++ b/src/main/java/com/essa/pageObject/LogisticShipp/CabinInfoPage.java @@ -1,6 +1,9 @@ package com.essa.pageObject.LogisticShipp; import com.essa.framework.BasePage; +import com.essa.framework.Model; +import com.essa.framework.Tools; +import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; @@ -11,7 +14,7 @@ public class CabinInfoPage extends BasePage { super(driver); } - public String FilePath = "C:\\Users\\hanlei\\Desktop\\1.png"; +// public String FilePath = "C:\\Users\\hanlei\\Desktop\\1.png"; //订舱看板 @FindBy(xpath = "//*[@id='tableViewList']/div/div/div/ul/li[3]") @@ -57,25 +60,36 @@ public class CabinInfoPage extends BasePage { @FindBy(xpath = "/html/body/div[6]/div/div/div[2]/div") WebElement Body; + //预计到港时间 + @FindBy (xpath = "//*[@id='expectArrivalTime']") + WebElement expectArrivalTime; + + public CabinInfoPage toCabinInfoPage() { + forceWait(1000); click(BookingCabin); mywait(FirstDate); - SetQuery.sendKeys("D180411T0278"); + SetQuery.sendKeys(Model.getPoNum()); click(QueryBtn); - mywait(SelectFirstDate); +// mywait(SelectFirstDate); + forceWait(1000); click(SelectFirstDate); click(BookingCabinBtn); mywait(SetCabinSONo); SetCabinSONo.sendKeys("TestCabinNo"); + jsExecutorRemoveAttribute(expectArrivalTime,"readonly"); + sendKeys(expectArrivalTime,Tools.getNextMonth()); jsExecutorRemoveAttribute(LastLoadTimeSet, "readonly"); - sendKeys(LastLoadTimeSet,"10/23/2018"); + sendKeys(LastLoadTimeSet, Tools.getToday());//最后装柜时间设置为今天 // LastLoadTimeSet.sendKeys("10/23/2018"); click(Body); // jsExecutorClick(FileUp); actionClick(FileUp); - uploadFile(FilePath); - forceWait(2000); + uploadFile(Model.getPicPath()); +// forceWait(2000); + dynamicLoad(By.xpath("//img[@ng-src='/img/nopic.jpg']"));//直到默认的图片找不到时,执行下一步 click(CommitBtn); + dynamicLoad(); return new CabinInfoPage(driver); } } diff --git a/src/main/java/com/essa/pageObject/LogisticShipp/LargeDcofdPage.java b/src/main/java/com/essa/pageObject/LogisticShipp/LargeDcofdPage.java deleted file mode 100644 index d764f3d..0000000 --- a/src/main/java/com/essa/pageObject/LogisticShipp/LargeDcofdPage.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.essa.pageObject.LogisticShipp; - -import com.essa.framework.BasePage; -import org.openqa.selenium.WebDriver; -import org.openqa.selenium.WebElement; -import org.openqa.selenium.support.FindBy; - -//大跟单确认备选船期待办界面 -public class LargeDcofdPage extends BasePage { - public LargeDcofdPage (WebDriver driver) { - super(driver); - } - - // 确认登记备选船期 - @FindBy(xpath = "//*[@id='tableViewList']/div/div/div/div[4]/span[1]/button[2]") - WebElement ConfirmationShipDate; - - public LargeDcofdPage toLargeDcofdPage(){ - mywait(ConfirmationShipDate); - click(ConfirmationShipDate); - return new LargeDcofdPage(driver); - } -} diff --git a/src/main/java/com/essa/pageObject/LogisticShipp/LogisticsShippPage.java b/src/main/java/com/essa/pageObject/LogisticShipp/LogisticsShippPage.java index 3bacd58..443a289 100644 --- a/src/main/java/com/essa/pageObject/LogisticShipp/LogisticsShippPage.java +++ b/src/main/java/com/essa/pageObject/LogisticShipp/LogisticsShippPage.java @@ -2,6 +2,9 @@ package com.essa.pageObject.LogisticShipp; import com.essa.framework.BasePage; +import com.essa.framework.Model; +import com.essa.pageObject.HomePage; +import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; @@ -45,10 +48,12 @@ public class LogisticsShippPage extends BasePage { WebElement logout; //搜索并通知业务补充船务资料 - public LogisticsShippPage isSucceed() { + public HomePage isSucceed() { + forceWait(1000); click(NoticeBoard); - mywait(resultDate); - setPono.sendKeys("D180411T0278"); + dynamicWait(By.xpath("//tbody/tr[1]/td[1]/input[1]"));//列表加载 +// setPono.sendKeys("D180411T0278"); + sendKeys(setPono, Model.getPoNum()); click(querySubBtn); mywait(selectedpo); click(selectedpo); @@ -56,6 +61,10 @@ public class LogisticsShippPage extends BasePage { click(skippSubBtn); mywait(submitSubBtn); click(submitSubBtn); - return new LogisticsShippPage(driver); + String saleman = DBSqlSearch("select a.account_name from pri_user a INNER JOIN\n" + + "sale_po b on a.id=b.salesman_id\n" + + "where b.`code` = '"+ Model.getPoNum()+"';","account_name");//根据PO单号查出对应的业务员 + Model.setSalesman(saleman);//将查询出的业务员存储在model中 + return new HomePage(driver); } } diff --git a/src/main/java/com/essa/pageObject/LogisticShipp/RegisOptShpDatePage.java b/src/main/java/com/essa/pageObject/LogisticShipp/RegisOptShpDatePage.java deleted file mode 100644 index 18e9d53..0000000 --- a/src/main/java/com/essa/pageObject/LogisticShipp/RegisOptShpDatePage.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.essa.pageObject.LogisticShipp; - -import com.essa.framework.BasePage; -import org.openqa.selenium.WebDriver; -import org.openqa.selenium.WebElement; -import org.openqa.selenium.support.FindBy; - -//认领登记备选船期待办页面 -public class RegisOptShpDatePage extends BasePage { - public RegisOptShpDatePage (WebDriver driver) { - super(driver); - } - - // 认领登记备选船期任务 - @FindBy(xpath = "//*[@id='tableViewList']/div/div/div/div[4]/button") - WebElement ClaimTask; - - // 添加船务信息 - @FindBy(xpath = "//*[@id='wf_content']/div/div/button[1]") - WebElement AddShippInfo; - - // 添加船公司 - @FindBy(xpath = "//*[@id='wf_content']/form/table/tbody/tr/td/ng-form/div/div[1]/input") - WebElement AddShippCompanyInfo; - - // 设置开船日期 - @FindBy(xpath = "//*[@id='deliveryDate0']") - WebElement SetdeliveryDate0; - - // 设置到岗日期 - @FindBy(xpath = "//*[@id='estimatedArrivalDate0']") - WebElement SetEstimatedArrivalDate0; - - // 提交 - @FindBy(xpath = "//*[@id='tableViewList']/div/div/div/div[4]/span[1]/button[2]") - WebElement SubmitBtn; - - public RegisOptShpDatePage toRegisOptShpDatePage(){ - mywait(ClaimTask); - forceWait(1000); - click(ClaimTask); - mywait(AddShippInfo); - click(AddShippInfo); - mywait(AddShippCompanyInfo); - AddShippCompanyInfo.sendKeys("TestShippCompanyInfo"); - jsExecutorRemoveAttribute(SetdeliveryDate0, "readonly"); - sendKeys(SetdeliveryDate0,"10/23/2018"); - jsExecutorRemoveAttribute(SetEstimatedArrivalDate0, "readonly"); - sendKeys(SetEstimatedArrivalDate0,"10/23/2018"); - click(SubmitBtn); - return new RegisOptShpDatePage(driver); - } -} diff --git a/src/main/java/com/essa/pageObject/LogisticShipp/SellerFillInfoPage.java b/src/main/java/com/essa/pageObject/LogisticShipp/SellerFillInfoPage.java deleted file mode 100644 index ba23158..0000000 --- a/src/main/java/com/essa/pageObject/LogisticShipp/SellerFillInfoPage.java +++ /dev/null @@ -1,127 +0,0 @@ -package com.essa.pageObject.LogisticShipp; - -import com.essa.framework.BasePage; -import org.openqa.selenium.WebDriver; -import org.openqa.selenium.WebElement; -import org.openqa.selenium.support.FindBy; - -//业务员补充船务资料待办页面 -public class SellerFillInfoPage extends BasePage { - public SellerFillInfoPage(WebDriver driver) { - super(driver); - } - - //选择货代来源 - @FindBy(xpath = "//*[text()='ESSA指定']") - WebElement AppointSet; - - //选择报关 - @FindBy(xpath = "//*[@id='shippingPanel1']/div[2]/div/div/label[2]") - WebElement DeclareSet; - - //选择货代 - @FindBy(xpath = "//*[text()='请选择货代']") - WebElement AppointCompanySet; - - //选择货代 - @FindBy(xpath = "//*[text()='中外运']") - WebElement AppointCompanySec; - - //确定选择货代 - @FindBy(xpath = "//*[text()='确定']") - WebElement CommitAppointCompanySec; - - //目标港口 - @FindBy(xpath = "//*[@id='shippingPanel2']/div[2]/div/div/input") - WebElement TargetPortSet; - - //发货人公司 - @FindBy(xpath = "//*[text()='汕头伊斯卡玩具有限公司']") - WebElement ConsignmentCompany; - - //收货公司 - @FindBy(xpath = "//*[@id='shippingPanel4']/div[1]/ng-form/div/div/div[1]/div/div/input") - WebElement HarvestCompany; - - //收货电话 - @FindBy(xpath = "//*[@id='shippingPanel4']/div[1]/ng-form/div/div/div[3]/div/div/input") - WebElement HarvestMobile; - - //收货传真 - @FindBy(xpath = "//*[@id='shippingPanel4']/div[1]/ng-form/div/div/div[4]/div/div/input") - WebElement HarvestFax; - - //收货邮编 - @FindBy(xpath = "//*[@id='shippingPanel4']/div[1]/ng-form/div/div/div[5]/div/div/input") - WebElement HarvestZipcode; - - //通知方公司 - @FindBy(xpath = "//*[@id='shippingPanel4']/div[2]/ng-form/div/div/div[1]/div/div/input") - WebElement SetNoticeCompany; - - //通知方电话号码 - @FindBy(xpath = "//*[@id='shippingPanel4']/div[2]/ng-form/div/div/div[3]/div/div/input") - WebElement SetNoticeMobile; - - //通知方邮编 - @FindBy(xpath = "//*[@id='shippingPanel4']/div[2]/ng-form/div/div/div[5]/div/div/input") - WebElement SetNoticeZipcode; - - //通知方传真 - @FindBy(xpath = "//*[@id='shippingPanel4']/div[2]/ng-form/div/div/div[4]/div/div/input") - WebElement SetNoticeFix; - - //寄单公司名称 - @FindBy(xpath = "//*[@id='shippingPanel5']/div[7]/div/div/div[1]/div/div/input") - WebElement MailCompanyName; - - //寄单联系人名称 - @FindBy(xpath = "//*[@id='shippingPanel5']/div[7]/div/div/div[2]/div/div/input") - WebElement MailConnecter; - - //寄单联系人名称 - @FindBy(xpath = "//*[@id='shippingPanel5']/div[7]/div/div/div[3]/div/div/input") - WebElement MailPhone; - - //寄单邮编 - @FindBy(xpath = "//*[@id='shippingPanel5']/div[7]/div/div/div[4]/div/div/input") - WebElement MailZipcode; - - //寄单传真 - @FindBy(xpath = "//*[@id='shippingPanel4']/div[2]/ng-form/div/div/div[4]/div/div/input") - WebElement MailFax; - - //寄单邮编 - @FindBy(xpath = "//*[text()='确认']") - WebElement SubmitBtn; - - public SellerFillInfoPage toSellerFillInfo() { - mywait(AppointSet); - click(AppointSet); - click(DeclareSet); - click(AppointCompanySet); - mywait(AppointCompanySec); - click(AppointCompanySec); - click(CommitAppointCompanySec); - mywait(TargetPortSet); - TargetPortSet.sendKeys("TestPort"); - click(ConsignmentCompany); - HarvestCompany.sendKeys("TestCompany"); - HarvestMobile.sendKeys("15888889999"); - HarvestFax.sendKeys("TestFax@test.com"); - HarvestZipcode.sendKeys("000000"); - - SetNoticeCompany.sendKeys("TestNoticeCompany"); - SetNoticeMobile.sendKeys("15888889999"); - SetNoticeFix.sendKeys("TestNoticeFix@test.com"); - SetNoticeZipcode.sendKeys("000000"); - - MailCompanyName.sendKeys("TestMailCompanyName"); - MailConnecter.sendKeys("TestMailConnecter"); - MailPhone.sendKeys("TestMailPhone"); - MailZipcode.sendKeys("TestMailZipCode"); - MailFax.sendKeys("TestMailFax"); - click(SubmitBtn); - return new SellerFillInfoPage(driver); - } -} diff --git a/src/main/java/com/essa/pageObject/LogisticShipp/SendCarPage.java b/src/main/java/com/essa/pageObject/LogisticShipp/SendCarPage.java index 9cea40c..61998d5 100644 --- a/src/main/java/com/essa/pageObject/LogisticShipp/SendCarPage.java +++ b/src/main/java/com/essa/pageObject/LogisticShipp/SendCarPage.java @@ -1,6 +1,7 @@ package com.essa.pageObject.LogisticShipp; import com.essa.framework.BasePage; +import com.essa.framework.Model; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; @@ -48,10 +49,12 @@ public class SendCarPage extends BasePage { WebElement SubmitBtn; public SendCarPage toSendCarPage() { + forceWait(1000); click(BookingCarBoard); mywait(WaitForBookingCarBoard); click(WaitForBookingCarBoard); - QueryWaitForBooking.sendKeys("D180411T0278"); + forceWait(500); + QueryWaitForBooking.sendKeys(Model.getPoNum()); click(QueryWaitForBookingCarBtn); mywait(FristWaitForBookingCarDate); click(FristWaitForBookingCarDate); diff --git a/src/main/java/com/essa/pageObject/PODocumentary/POBoardPage.java b/src/main/java/com/essa/pageObject/PODocumentary/POBoardPage.java index 036c1c5..c64118a 100644 --- a/src/main/java/com/essa/pageObject/PODocumentary/POBoardPage.java +++ b/src/main/java/com/essa/pageObject/PODocumentary/POBoardPage.java @@ -1,5 +1,6 @@ package com.essa.pageObject.PODocumentary; +import com.essa.framework.Tools; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import com.essa.framework.BasePage; @@ -64,8 +65,8 @@ public class POBoardPage extends BasePage { public POBoardPage toNotificationLoading(){ click(NotificationLoading); jsExecutorRemoveAttribute(loadingDate,"readonly"); - String Loadingdate = getDateTimeByFormat(new Date(), "MM/dd/yyyy"); - sendKeys(loadingDate,Loadingdate); +// String Loadingdate = getDateTimeByFormat(new Date(), "MM/dd/yyyy"); + sendKeys(loadingDate, Tools.getToday()); click(BlankPlace); click(submit); forceWait(4000); diff --git a/src/main/java/com/essa/pageObject/StorageManage/LoadContainerHandlePage.java b/src/main/java/com/essa/pageObject/StorageManage/LoadContainerHandlePage.java index b9a4aed..061a23c 100644 --- a/src/main/java/com/essa/pageObject/StorageManage/LoadContainerHandlePage.java +++ b/src/main/java/com/essa/pageObject/StorageManage/LoadContainerHandlePage.java @@ -2,6 +2,7 @@ package com.essa.pageObject.StorageManage; import com.essa.framework.BasePage; import com.essa.framework.Model; +import com.essa.framework.Tools; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; @@ -48,8 +49,8 @@ public class LoadContainerHandlePage extends BasePage { public LoadContainerHandlePage loadTaskHandle(){ forceWait(1000); jsExecutorRemoveAttribute(actLoadTime,"readonly"); - String date = getDateTimeByFormat(new Date(), "MM/dd/yyyy"); - sendKeys(actLoadTime,date); +// String date = getDateTimeByFormat(new Date(), "MM/dd/yyyy"); + sendKeys(actLoadTime, Tools.getToday()); // 获取‘可装柜数量’字符串中的数量 String qua = partiaStr(mayLoadQuantity,0,1); // 对切片结果进行int转换 diff --git a/src/main/java/com/essa/pageObject/StorageManage/LoadContainerManagePage.java b/src/main/java/com/essa/pageObject/StorageManage/LoadContainerManagePage.java index 4d7b7c6..d4bc491 100644 --- a/src/main/java/com/essa/pageObject/StorageManage/LoadContainerManagePage.java +++ b/src/main/java/com/essa/pageObject/StorageManage/LoadContainerManagePage.java @@ -7,7 +7,11 @@ import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; - +/** +* @Description: 装柜任务管理列表 +* @Author: ZengJin +* @CreateTime: 2018/11/1 +*/ public class LoadContainerManagePage extends BasePage { public LoadContainerManagePage(WebDriver driver) { diff --git a/src/main/java/com/essa/pageObject/needDealt/LargeDcofdPage.java b/src/main/java/com/essa/pageObject/needDealt/LargeDcofdPage.java new file mode 100644 index 0000000..4dd218d --- /dev/null +++ b/src/main/java/com/essa/pageObject/needDealt/LargeDcofdPage.java @@ -0,0 +1,32 @@ +package com.essa.pageObject.needDealt; + +import com.essa.framework.BasePage; +import com.essa.pageObject.HomePage; +import org.openqa.selenium.By; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; + +//大跟单确认备选船期待办界面 +public class LargeDcofdPage extends BasePage { + public LargeDcofdPage (WebDriver driver) { + super(driver); + } + + // 确认登记备选船期 + @FindBy(xpath = "//*[@id='tableViewList']/div/div/div/div[4]/span[1]/button[2]") + WebElement ConfirmationShipDate; + + /** + *大跟单确认船期 + * @param + * @return + */ + public HomePage toLargeDcofdPage(){ +// mywait(ConfirmationShipDate); + dynamicWait(By.xpath("//*[contains(text(),'待办工作')]")); + click(ConfirmationShipDate); + dynamicLoad(); + return new HomePage(driver); + } +} diff --git a/src/main/java/com/essa/pageObject/needDealt/NeedDealtApplyPage.java b/src/main/java/com/essa/pageObject/needDealt/NeedDealtApplyPage.java index 786021b..7b60d79 100644 --- a/src/main/java/com/essa/pageObject/needDealt/NeedDealtApplyPage.java +++ b/src/main/java/com/essa/pageObject/needDealt/NeedDealtApplyPage.java @@ -1,5 +1,6 @@ package com.essa.pageObject.needDealt; +import com.essa.framework.Tools; import org.openqa.selenium.By; import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; @@ -10,6 +11,8 @@ import com.essa.framework.BasePage; import com.essa.framework.Model; import com.essa.pageObject.HomePage; +import java.util.Date; + /** * 当团购活动成功时,类目经理采购计划单申请页面 * @author Administrator @@ -157,11 +160,12 @@ public class NeedDealtApplyPage extends BasePage { //设置开船日期 jsExecutorRemoveAttribute(inputShipperStartDate,"readonly"); inputShipperStartDate.clear(); - sendKeys(inputShipperStartDate,"10/25/2018"); +// String date = getDateTimeByFormat(new Date(),"MM/dd/yyyy"); + sendKeys(inputShipperStartDate, Tools.getNextMonth()); //设置预计到港日期 jsExecutorRemoveAttribute(inputShipperArriveDate,"readonly"); inputShipperArriveDate.clear(); - sendKeys(inputShipperArriveDate,"11/10/2018"); + sendKeys(inputShipperArriveDate,Tools.getNextMonth()); //提交 click(submit); dynamicLoad(); diff --git a/src/main/java/com/essa/pageObject/needDealt/RegisOptShpDatePage.java b/src/main/java/com/essa/pageObject/needDealt/RegisOptShpDatePage.java new file mode 100644 index 0000000..b620d14 --- /dev/null +++ b/src/main/java/com/essa/pageObject/needDealt/RegisOptShpDatePage.java @@ -0,0 +1,70 @@ +package com.essa.pageObject.needDealt; + +import com.essa.framework.BasePage; +import com.essa.framework.Model; +import com.essa.framework.Tools; +import com.essa.pageObject.HomePage; +import org.openqa.selenium.By; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; + +//认领登记备选船期待办页面 +public class RegisOptShpDatePage extends BasePage { + public RegisOptShpDatePage (WebDriver driver) { + super(driver); + } + + // 认领登记备选船期任务 + @FindBy(xpath = "//*[@id='tableViewList']/div/div/div/div[4]/button") + WebElement ClaimTask; + + // 添加船务信息 + @FindBy(xpath = "//*[@id='wf_content']/div/div/button[1]") + WebElement AddShippInfo; + + // 添加船公司 + @FindBy(xpath = "//*[@id='wf_content']/form/table/tbody/tr/td/ng-form/div/div[1]/input") + WebElement AddShippCompanyInfo; + + // 设置开船日期 + @FindBy(xpath = "//*[@id='deliveryDate0']") + WebElement SetdeliveryDate0; + + // 设置到岗日期 + @FindBy(xpath = "//*[@id='estimatedArrivalDate0']") + WebElement SetEstimatedArrivalDate0; + + // 提交 + @FindBy(xpath = "//*[@id='tableViewList']/div/div/div/div[4]/span[1]/button[2]") + WebElement SubmitBtn; + + //流水号 + @FindBy (xpath = "//*[contains(text(),'流水号:RW')]") + WebElement serialNumber; + + /** + *登记船期 + * @param + * @return HomePage + */ + public HomePage toRegisOptShpDatePage(){ + dynamicWait(By.xpath("//*[contains(text(),'待办工作')]")); + if (isVisibility(By.xpath("//*[@id='tableViewList']/div/div/div/div[4]/button"))){ + click(ClaimTask);//如果需要认领,则认领 + forceWait(4000); + } + mywait(AddShippInfo); + Model.setSerialNum(partialStr(serialNumber.getText(), "流水号:")); + click(AddShippInfo); + mywait(AddShippCompanyInfo); + AddShippCompanyInfo.sendKeys("TestShippCompanyInfo"); + jsExecutorRemoveAttribute(SetdeliveryDate0, "readonly"); + sendKeys(SetdeliveryDate0, Tools.moreDays(20)); + jsExecutorRemoveAttribute(SetEstimatedArrivalDate0, "readonly"); + sendKeys(SetEstimatedArrivalDate0,Tools.moreDays(20)); + click(SubmitBtn); + dynamicLoad(); + return new HomePage(driver); + } +} diff --git a/src/main/java/com/essa/pageObject/needDealt/SellerFillInfoPage.java b/src/main/java/com/essa/pageObject/needDealt/SellerFillInfoPage.java new file mode 100644 index 0000000..549e4b2 --- /dev/null +++ b/src/main/java/com/essa/pageObject/needDealt/SellerFillInfoPage.java @@ -0,0 +1,142 @@ +package com.essa.pageObject.needDealt; + +import com.essa.framework.BasePage; +import com.essa.framework.Model; +import com.essa.pageObject.HomePage; +import org.openqa.selenium.By; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; + +//业务员补充船务资料待办页面 +public class SellerFillInfoPage extends BasePage { + public SellerFillInfoPage(WebDriver driver) { + super(driver); + } + + //选择货代来源 + @FindBy(xpath = "//*[text()='ESSA指定']") + WebElement AppointSet; + + //选择报关 + @FindBy(xpath = "//*[@id='shippingPanel1']/div[2]/div/div/label[2]") + WebElement DeclareSet; + + //选择货代 + @FindBy(xpath = "//*[text()='请选择货代']") + WebElement AppointCompanySet; + + //选择货代 + @FindBy(xpath = "//*[text()='中外运']") + WebElement AppointCompanySec; + + //确定选择货代 + @FindBy(xpath = "//*[text()='确定']") + WebElement CommitAppointCompanySec; + + //目标港口 + @FindBy(xpath = "//*[@id='shippingPanel2']/div[2]/div/div/input") + WebElement TargetPortSet; + + //发货人公司 + @FindBy(xpath = "//*[text()='汕头伊斯卡玩具有限公司']") + WebElement ConsignmentCompany; + + //收货公司 + @FindBy(xpath = "//*[@id='shippingPanel4']/div[1]/ng-form/div/div/div[1]/div/div/input") + WebElement HarvestCompany; + + //收货电话 + @FindBy(xpath = "//*[@id='shippingPanel4']/div[1]/ng-form/div/div/div[3]/div/div/input") + WebElement HarvestMobile; + + //收货传真 + @FindBy(xpath = "//*[@id='shippingPanel4']/div[1]/ng-form/div/div/div[4]/div/div/input") + WebElement HarvestFax; + + //收货邮编 + @FindBy(xpath = "//*[@id='shippingPanel4']/div[1]/ng-form/div/div/div[5]/div/div/input") + WebElement HarvestZipcode; + + //通知方公司 + @FindBy(xpath = "//*[@id='shippingPanel4']/div[2]/ng-form/div/div/div[1]/div/div/input") + WebElement SetNoticeCompany; + + //通知方电话号码 + @FindBy(xpath = "//*[@id='shippingPanel4']/div[2]/ng-form/div/div/div[3]/div/div/input") + WebElement SetNoticeMobile; + + //通知方邮编 + @FindBy(xpath = "//*[@id='shippingPanel4']/div[2]/ng-form/div/div/div[5]/div/div/input") + WebElement SetNoticeZipcode; + + //通知方传真 + @FindBy(xpath = "//*[@id='shippingPanel4']/div[2]/ng-form/div/div/div[4]/div/div/input") + WebElement SetNoticeFix; + + //寄单公司名称 + @FindBy(xpath = "//*[@id='shippingPanel5']/div[7]/div/div/div[1]/div/div/input") + WebElement MailCompanyName; + + //寄单联系人名称 + @FindBy(xpath = "//*[@id='shippingPanel5']/div[7]/div/div/div[2]/div/div/input") + WebElement MailConnecter; + + //寄单联系人名称 + @FindBy(xpath = "//*[@id='shippingPanel5']/div[7]/div/div/div[3]/div/div/input") + WebElement MailPhone; + + //寄单邮编 + @FindBy(xpath = "//*[@id='shippingPanel5']/div[7]/div/div/div[4]/div/div/input") + WebElement MailZipcode; + + //寄单传真 + @FindBy(xpath = "//*[@id='shippingPanel4']/div[2]/ng-form/div/div/div[4]/div/div/input") + WebElement MailFax; + + //寄单邮编 + @FindBy(xpath = "//*[text()='确认']") + WebElement SubmitBtn; + + //流水号 + @FindBy (xpath = "//*[contains(text(),'流水号:RW')]") + WebElement serialNumber; + + /** + *业务员填写船务资料 + * @param + * @return + */ + public HomePage toSellerFillInfo() { +// mywait(AppointSet); + dynamicWait(By.xpath("//*[contains(text(),'待办工作')]")); + Model.setSerialNum(partialStr(serialNumber.getText(), "流水号:"));//将流水号传递出去 + click(AppointSet); + click(DeclareSet); + click(AppointCompanySet); + forceWait(1000); + click(AppointCompanySec); + click(CommitAppointCompanySec); + mywait(TargetPortSet); + TargetPortSet.sendKeys("TestPort"); + click(ConsignmentCompany); + HarvestCompany.sendKeys("TestCompany"); + HarvestMobile.sendKeys("15888889999"); + HarvestFax.sendKeys("TestFax@test.com"); + HarvestZipcode.sendKeys("000000"); + + SetNoticeCompany.sendKeys("TestNoticeCompany"); + SetNoticeMobile.sendKeys("15888889999"); + SetNoticeFix.sendKeys("TestNoticeFix@test.com"); + SetNoticeZipcode.sendKeys("000000"); + + MailCompanyName.sendKeys("TestMailCompanyName"); + MailConnecter.sendKeys("TestMailConnecter"); + MailPhone.sendKeys("TestMailPhone"); + MailZipcode.sendKeys("TestMailZipCode"); + MailFax.sendKeys("TestMailFax"); + click(SubmitBtn); + dynamicLoad(); + return new HomePage(driver); + } +} diff --git a/src/main/java/com/essa/testSuite/TestConfirLogistics.java b/src/main/java/com/essa/testSuite/TestConfirLogistics.java index 1070990..d7c86a6 100644 --- a/src/main/java/com/essa/testSuite/TestConfirLogistics.java +++ b/src/main/java/com/essa/testSuite/TestConfirLogistics.java @@ -1,6 +1,10 @@ package com.essa.testSuite; +import com.essa.framework.Model; import com.essa.pageObject.LogisticShipp.*; +import com.essa.pageObject.needDealt.LargeDcofdPage; +import com.essa.pageObject.needDealt.RegisOptShpDatePage; +import com.essa.pageObject.needDealt.SellerFillInfoPage; import org.openqa.selenium.WebDriver; import org.openqa.selenium.support.PageFactory; import org.testng.annotations.AfterClass; @@ -36,32 +40,35 @@ public class TestConfirLogistics extends BaseTest { homePage.getHome(); homePage.logout(); - loginValid("yanqingping"); + loginValid(Model.getSalesman());//登录对应的业务员账号 //待办 - homePage.toSailingDateConfirmPage(); +// homePage.toSailingDateConfirmPage(); + homePage.toWriteShipping(); //业务员补充船务资料 SellerFillInfoPage sellerFillInfo = PageFactory.initElements(driver, SellerFillInfoPage.class); sellerFillInfo.toSellerFillInfo(); //登记备选船期待办 - homePage.getHome(); +// homePage.getHome(); homePage.logout(); loginValid("wangmiaodan"); homePage.toSailingDateConfirmPage(); +// homePage.toShippingMarkWait();//根据流水号进入待办 RegisOptShpDatePage regisOptShpDatePage = PageFactory.initElements(driver,RegisOptShpDatePage.class); regisOptShpDatePage.toRegisOptShpDatePage(); //大跟单确认 - homePage.getHome(); +// homePage.getHome(); homePage.logout(); loginValid("yuwanhang"); - homePage.toSailingDateConfirmPage(); +// homePage.toSailingDateConfirmPage(); + homePage.toShippingMarkWait();//根据流水号进入待办 LargeDcofdPage largeDcofdPage = PageFactory.initElements(driver,LargeDcofdPage.class); largeDcofdPage.toLargeDcofdPage(); //订舱 - homePage.getHome(); +// homePage.getHome(); homePage.logout(); loginValid("chenhong"); @@ -76,6 +83,5 @@ public class TestConfirLogistics extends BaseTest { //确认发车 SendCarPage sendCarPage = PageFactory.initElements(driver, SendCarPage.class); sendCarPage.toSendCarPage(); - } } diff --git a/src/main/java/com/essa/testSuite/TestLoadContainer.java b/src/main/java/com/essa/testSuite/TestLoadContainer.java index 79a8466..823eeb5 100644 --- a/src/main/java/com/essa/testSuite/TestLoadContainer.java +++ b/src/main/java/com/essa/testSuite/TestLoadContainer.java @@ -130,6 +130,7 @@ public class TestLoadContainer extends BaseTest { BillingCenterPage billingCenterPage = PageFactory.initElements(driver,BillingCenterPage.class); homePage.toBillingCenterPage(); billingCenterPage.MoreBilling(); + homePage.getHome(); homePage.logout(); } } diff --git a/src/main/java/swing/SwingMain.java b/src/main/java/swing/SwingMain.java index ecf2e8b..7eb799a 100644 --- a/src/main/java/swing/SwingMain.java +++ b/src/main/java/swing/SwingMain.java @@ -164,6 +164,9 @@ public class SwingMain { frmvBy.getContentPane().add(ToCart); ToCart.setLayout(null); + + + //可视化操作选项 JLabel label_1 = new JLabel("可视化操作:"); label_1.setBounds(10, 119, 88, 15); @@ -279,6 +282,7 @@ public class SwingMain { ToCart.setVisible(false); POInquiry.setVisible(false); register.setVisible(false); +// loadFinish.setVisible(false); switch ((String)selectScene.getSelectedItem()){ default: process.setText( @@ -327,11 +331,17 @@ public class SwingMain { addOriginal.setVisible(true); ja.append(getCurrentTime() + "已选择场景:新增开发商品\r\n"); break; + case "装柜完成": + ToCart.setVisible(true); + ja.append(getCurrentTime() + "已选择场景:装柜完成,将重启浏览器多次\r\n"); + process.setText( + "
装柜流程: