Commit 9e8e2bb11eafd2ab3d19f322227b9851ae0c4637

Authored by zengjin
2 parents a524812a a0824d2d

Merge remote-tracking branch 'origin/dev_test' into dev_test

src/main/java/com/essa/framework/BrowserEngine.java
@@ -18,6 +18,7 @@ public class BrowserEngine { @@ -18,6 +18,7 @@ public class BrowserEngine {
18 private ConfigProperties configProperties; 18 private ConfigProperties configProperties;
19 19
20 public void initConfigData() { 20 public void initConfigData() {
  21 + //有些地方是没有设置初始化环境直接调用这个方法的,所以默认是sit
21 env1 = null == env1 ? EnvEnum.SIT : env1; 22 env1 = null == env1 ? EnvEnum.SIT : env1;
22 configProperties = ConfigProperties.getConfig(env1); 23 configProperties = ConfigProperties.getConfig(env1);
23 browserEnum = BrowserEnum.fromCode(configProperties.getBrowserName()); 24 browserEnum = BrowserEnum.fromCode(configProperties.getBrowserName());
@@ -39,6 +40,7 @@ public class BrowserEngine { @@ -39,6 +40,7 @@ public class BrowserEngine {
39 */ 40 */
40 private WebDriver getBrowser(BrowserEnum browser,String url,int waitTime){ 41 private WebDriver getBrowser(BrowserEnum browser,String url,int waitTime){
41 System.setProperty(browser.getExeName(), SystemConstant.RESOURCE_PATH + browser.getDriver()); 42 System.setProperty(browser.getExeName(), SystemConstant.RESOURCE_PATH + browser.getDriver());
  43 + //根据浏览器类型,初始化对应的驱动
42 switch(browser) { 44 switch(browser) {
43 case Firefox:{ 45 case Firefox:{
44 driver = new FirefoxDriver(); 46 driver = new FirefoxDriver();
src/main/java/com/essa/framework/BrowserEnum.java
@@ -53,7 +53,7 @@ public enum BrowserEnum { @@ -53,7 +53,7 @@ public enum BrowserEnum {
53 private String code; 53 private String code;
54 54
55 /** 55 /**
56 - * 枚举描述 56 + * 浏览器驱动名字
57 */ 57 */
58 private String driver; 58 private String driver;
59 59
src/main/java/com/essa/framework/ConfigProperties.java
@@ -11,8 +11,11 @@ import java.util.Properties; @@ -11,8 +11,11 @@ import java.util.Properties;
11 */ 11 */
12 public class ConfigProperties { 12 public class ConfigProperties {
13 13
  14 + //浏览器名称
14 private String browserName; 15 private String browserName;
  16 + //bpms首页url
15 private String serverURL; 17 private String serverURL;
  18 + //buyer首页url
16 private String buyerURL; 19 private String buyerURL;
17 20
18 // 数据库驱动名字 21 // 数据库驱动名字
@@ -31,6 +34,7 @@ public class ConfigProperties { @@ -31,6 +34,7 @@ public class ConfigProperties {
31 private static Map<String,ConfigProperties> configPropertiesMap = new HashMap<String,ConfigProperties>(); 34 private static Map<String,ConfigProperties> configPropertiesMap = new HashMap<String,ConfigProperties>();
32 35
33 static { 36 static {
  37 + //读取各个环境的配置项
34 EnvEnum[] env = EnvEnum.values(); 38 EnvEnum[] env = EnvEnum.values();
35 for (EnvEnum envEnum : env) { 39 for (EnvEnum envEnum : env) {
36 try { 40 try {
src/main/java/com/essa/framework/DButil.java
@@ -23,6 +23,7 @@ public class DButil { @@ -23,6 +23,7 @@ public class DButil {
23 23
24 Connection conn = null; 24 Connection conn = null;
25 try { 25 try {
  26 + //通过环境找寻相应的配置,然后初始化数据库连接
26 EnvEnum envEnum = EnvEnum.fromCode(Model.getEnv()); 27 EnvEnum envEnum = EnvEnum.fromCode(Model.getEnv());
27 ConfigProperties dbConfig = ConfigProperties.getConfig(envEnum); 28 ConfigProperties dbConfig = ConfigProperties.getConfig(envEnum);
28 Class.forName(dbConfig.getJdbcName()); 29 Class.forName(dbConfig.getJdbcName());
src/main/java/com/essa/framework/SuitesEnum.java
@@ -8,6 +8,7 @@ import java.util.concurrent.ConcurrentHashMap; @@ -8,6 +8,7 @@ import java.util.concurrent.ConcurrentHashMap;
8 import java.util.concurrent.atomic.AtomicReference; 8 import java.util.concurrent.atomic.AtomicReference;
9 9
10 public enum SuitesEnum { 10 public enum SuitesEnum {
  11 + //suite 第一个是唯一标志,第二个表示需要使用哪个xml(需要换的时候只要改这个即可),第三个描述这个干吗的
11 ADD_ORIGINAL_GOODS("ADD_ORIGIN_SKU","addOriginalGoods.xml","新增原厂商品"), 12 ADD_ORIGINAL_GOODS("ADD_ORIGIN_SKU","addOriginalGoods.xml","新增原厂商品"),
12 ADD_MARKET_GOODS("ADD_MARKET_GOODS","addMarketGoods.xml","新增市场商品"), 13 ADD_MARKET_GOODS("ADD_MARKET_GOODS","addMarketGoods.xml","新增市场商品"),
13 PUBLISH_GROUP_PURCHASE("PUBLISH_GROUP_PURCHASE","publishGroupPurchase.xml","发布团购"), 14 PUBLISH_GROUP_PURCHASE("PUBLISH_GROUP_PURCHASE","publishGroupPurchase.xml","发布团购"),
src/main/java/com/essa/pageObject/PODocumentary/POBoardPage.java
@@ -8,6 +8,8 @@ import com.essa.framework.BasePage; @@ -8,6 +8,8 @@ import com.essa.framework.BasePage;
8 import org.openqa.selenium.WebElement; 8 import org.openqa.selenium.WebElement;
9 import org.openqa.selenium.support.FindBy; 9 import org.openqa.selenium.support.FindBy;
10 10
  11 +import java.util.Date;
  12 +
11 public class POBoardPage extends BasePage { 13 public class POBoardPage extends BasePage {
12 14
13 public POBoardPage(WebDriver driver) { 15 public POBoardPage(WebDriver driver) {
@@ -31,11 +33,34 @@ public class POBoardPage extends BasePage { @@ -31,11 +33,34 @@ public class POBoardPage extends BasePage {
31 @FindBy (xpath ="//button[contains(text(),'转在途尾货')]") 33 @FindBy (xpath ="//button[contains(text(),'转在途尾货')]")
32 WebElement toTail;//转在途尾货按钮 34 WebElement toTail;//转在途尾货按钮
33 35
  36 + // 通知收货
34 @FindBy (xpath = "//button[contains(text(),'通知收货')]") 37 @FindBy (xpath = "//button[contains(text(),'通知收货')]")
35 - WebElement noticeReceive;//通知收货按钮 38 + WebElement noticeReceive;
  39 +
  40 + //收货日期
  41 + @FindBy (xpath = "//*[contains(text(),'收货日期')]") ///label[@class='control-label col-sm-8']
  42 + WebElement reveiveDate;
  43 +
  44 + // 收货日期输入框
  45 + @FindBy (xpath = " //div[@class='col-sm-16']//input[@type='text']")
  46 + WebElement inputReceiveDate;
  47 +
  48 + // 确定
  49 + @FindBy (xpath = "//button[contains(text(),'确定')]")
  50 + WebElement submit;
  51 +
  52 + // 通知装柜
  53 + @FindBy(xpath = "//button[contains(text(),'通知装柜')]")
  54 + WebElement noticeLoad;
  55 +
  56 + // 装柜日期空白处
  57 + @FindBy(xpath = " //label[@class='control-label col-md-8']")
  58 + WebElement loadDate;
  59 +
  60 + // 装柜日期输入框
  61 + @FindBy (xpath = "//input[@name='newDate']")
  62 + WebElement inutLoadDate;
36 63
37 - @FindBy(xpath ="//button[contains(text(),'通知装柜')]")  
38 - WebElement noticeLoad;//通知装柜按钮  
39 64
40 /* 65 /*
41 * 页面方法 66 * 页面方法
@@ -55,4 +80,32 @@ public class POBoardPage extends BasePage { @@ -55,4 +80,32 @@ public class POBoardPage extends BasePage {
55 click(toTail); 80 click(toTail);
56 return new ConvertTailPage(driver); 81 return new ConvertTailPage(driver);
57 } 82 }
  83 +
  84 + /**
  85 + * PO通知收货和通知装柜
  86 + */
  87 + // 通知收货
  88 + public POBoardPage noticeReceive(){
  89 + click(noticeReceive);
  90 + jsExecutorRemoveAttribute(inputReceiveDate,"readonly");
  91 + String date = getDateTimeByFormat(new Date(),"MM/dd/yyyy");
  92 + sendKeys(inputReceiveDate,date);
  93 + click(reveiveDate);
  94 + click(submit);
  95 + forceWait(3000);
  96 + return new POBoardPage(driver);
  97 + }
  98 +
  99 + //通知装柜
  100 + public POBoardPage noticeLoad(){
  101 + click(noticeLoad);
  102 + jsExecutorRemoveAttribute(inutLoadDate,"readonly");
  103 + String date = getDateTimeByFormat(new Date(),"MM/dd/yyyy");
  104 + sendKeys(inutLoadDate,date);
  105 + click(loadDate);
  106 + forceWait(3000);
  107 + click(submit);
  108 + forceWait(2000);
  109 + return new POBoardPage(driver);
  110 + }
58 } 111 }
src/main/java/com/essa/pageObject/PODocumentary/PODocumentaryListPage.java
@@ -33,6 +33,18 @@ public class PODocumentaryListPage extends BasePage { @@ -33,6 +33,18 @@ public class PODocumentaryListPage extends BasePage {
33 @FindBy (xpath = "//*[@id='listView']/div/table/tbody/tr[1]/td/div/div[1]/div/ul/li[1]/a") 33 @FindBy (xpath = "//*[@id='listView']/div/table/tbody/tr[1]/td/div/div[1]/div/ul/li[1]/a")
34 WebElement detail;//搜索结果中的一个查看详情 34 WebElement detail;//搜索结果中的一个查看详情
35 35
  36 + // 关键字查询
  37 + @FindBy (xpath = "//*[contains(@placeholder,'请输入PO单号、客户编号等关键字查询')]")
  38 + WebElement keySearch;
  39 +
  40 + // 放大镜查询按钮
  41 + @FindBy (xpath = "//*[contains(@ng-click,'search()')]")
  42 + WebElement magnifierSearch;
  43 +
  44 + // 查看详情
  45 + @FindBy (xpath = "//*[contains(text(),'查看详情')]")
  46 + WebElement followDetail;
  47 +
36 /* 48 /*
37 * 页面方法 49 * 页面方法
38 */ 50 */
@@ -45,4 +57,19 @@ public class PODocumentaryListPage extends BasePage { @@ -45,4 +57,19 @@ public class PODocumentaryListPage extends BasePage {
45 click(detail); 57 click(detail);
46 return new POBoardPage(driver); 58 return new POBoardPage(driver);
47 } 59 }
  60 +
  61 + /**
  62 + * 进入PO跟单详情
  63 + * @return
  64 + */
  65 + public PODocumentaryListPage toPoFollowDetail(){
  66 + sendKeys(keySearch, Model.getPoNum());
  67 + click(magnifierSearch);
  68 + forceWait(5000);
  69 + dynamicWait(By.xpath("//div[@class='row xxrow-header-bg row-border-bottom no-margin padding-horizontal-5']"));
  70 + click(followDetail);
  71 + forceWait(5000);
  72 + dynamicWait(By.xpath("//div[@class='panel-body']"));
  73 + return new PODocumentaryListPage(driver);
  74 + }
48 } 75 }
src/main/java/com/essa/testSuite/TestNoticeReceiveAndLoad.java
1 package com.essa.testSuite; 1 package com.essa.testSuite;
2 2
3 import com.essa.pageObject.BaseTest; 3 import com.essa.pageObject.BaseTest;
  4 +import com.essa.pageObject.HomePage;
  5 +import com.essa.pageObject.PODocumentary.POBoardPage;
  6 +import com.essa.pageObject.PODocumentary.PODocumentaryListPage;
4 import org.openqa.selenium.WebDriver; 7 import org.openqa.selenium.WebDriver;
  8 +import org.openqa.selenium.support.PageFactory;
5 import org.testng.annotations.AfterClass; 9 import org.testng.annotations.AfterClass;
6 import org.testng.annotations.BeforeClass; 10 import org.testng.annotations.BeforeClass;
7 import org.testng.annotations.Test; 11 import org.testng.annotations.Test;
@@ -22,11 +26,18 @@ public class TestNoticeReceiveAndLoad extends BaseTest{ @@ -22,11 +26,18 @@ public class TestNoticeReceiveAndLoad extends BaseTest{
22 } 26 }
23 27
24 /** 28 /**
25 - * 通知收货和通知装柜 29 + * 通知收货装柜
26 */ 30 */
27 - @Test(description = "通知收货和通知装柜") 31 + @Test(description = "通知收货装柜")
28 public void NoticeReceiveAndLoad(){ 32 public void NoticeReceiveAndLoad(){
29 this.driver = getDriver(); 33 this.driver = getDriver();
30 - 34 + HomePage homePage = PageFactory.initElements(driver,HomePage.class);
  35 + homePage.toPoDocumentaryListPage();
  36 + PODocumentaryListPage poDocumentaryListPage = PageFactory.initElements(driver,PODocumentaryListPage.class);
  37 + POBoardPage poBoardPage = PageFactory.initElements(driver,POBoardPage.class);
  38 + poDocumentaryListPage.toPoFollowDetail();
  39 + poBoardPage.noticeReceive();
  40 + poBoardPage.noticeLoad();
31 } 41 }
  42 +
32 } 43 }