Commit b2af39f84bc3218b7b0e112425ee0bf0af102738
1 parent
a3ecf544
新增开发商品
Showing
17 changed files
with
823 additions
and
81 deletions
Show diff stats
src/main/java/com/essa/framework/BasePage.java
@@ -653,12 +653,12 @@ public class BasePage { | @@ -653,12 +653,12 @@ public class BasePage { | ||
653 | forceWait(1000); | 653 | forceWait(1000); |
654 | } | 654 | } |
655 | } | 655 | } |
656 | - /** | ||
657 | - * bpms动态等待,指的是我们后台系统那个加载的圈圈 | ||
658 | - */ | ||
659 | - protected void dynamicWait() { | ||
660 | - dynamicWait(By.xpath("//*[@name='tailDeliveryDay']")); | ||
661 | - } | 656 | +// /** |
657 | +// * bpms动态等待,指的是我们后台系统那个加载的圈圈 | ||
658 | +// */ | ||
659 | +// protected void dynamicWait() { | ||
660 | +// dynamicWait(By.xpath("//*[@name='tailDeliveryDay']")); | ||
661 | +// } | ||
662 | 662 | ||
663 | /** | 663 | /** |
664 | * 与上面的方法相反,如果元素存在,等待直到元素不存在,最长7秒 | 664 | * 与上面的方法相反,如果元素存在,等待直到元素不存在,最长7秒 |
@@ -670,6 +670,14 @@ public class BasePage { | @@ -670,6 +670,14 @@ public class BasePage { | ||
670 | } | 670 | } |
671 | } | 671 | } |
672 | /** | 672 | /** |
673 | + * 我们bpms的加载等待的那个圈圈,这个加载圈消失意味着加载完成 | ||
674 | + * @param | ||
675 | + * @return | ||
676 | + */ | ||
677 | + protected void dynamicLoad(){ | ||
678 | + dynamicLoad(By.xpath("//*[style='display: block;']")); | ||
679 | + } | ||
680 | + /** | ||
673 | * 连接数据库查询数据 | 681 | * 连接数据库查询数据 |
674 | * @param sql 查询sql | 682 | * @param sql 查询sql |
675 | * @param field 需要的字段,这个方法只支持一个字段查询 | 683 | * @param field 需要的字段,这个方法只支持一个字段查询 |
src/main/java/com/essa/framework/Model.java
@@ -9,7 +9,7 @@ public class Model { | @@ -9,7 +9,7 @@ public class Model { | ||
9 | public static String skuNo;//商品编号 | 9 | public static String skuNo;//商品编号 |
10 | public static String buyerNo;//采购商编号 | 10 | public static String buyerNo;//采购商编号 |
11 | public static String supplierName;//供应商名称 | 11 | public static String supplierName;//供应商名称 |
12 | - public static String picPath;//图片路径 | 12 | + public static String picPath = "C:\\Users\\Administrator\\Pictures\\Camera Roll\\ya.jpg";//图片路径 |
13 | public static String email = "buyer"+Tools.getTime()+"@essa.cn";//采购商邮箱 | 13 | public static String email = "buyer"+Tools.getTime()+"@essa.cn";//采购商邮箱 |
14 | public static String invateCode;//邀请码 | 14 | public static String invateCode;//邀请码 |
15 | public static String env;//所选环境 | 15 | public static String env;//所选环境 |
@@ -19,8 +19,25 @@ public class Model { | @@ -19,8 +19,25 @@ public class Model { | ||
19 | public static int isactivity=0;//是否是活动商品 1:是 0:否 | 19 | public static int isactivity=0;//是否是活动商品 1:是 0:否 |
20 | public static String manager;//商品的类目经理 | 20 | public static String manager;//商品的类目经理 |
21 | public static String serialNum;//待办流水号 | 21 | public static String serialNum;//待办流水号 |
22 | - | ||
23 | - | 22 | + public static String materialName;//物料名称 |
23 | + public static String projectName;//项目立项书名称 | ||
24 | + | ||
25 | + public static String getProjectName() { | ||
26 | + return projectName; | ||
27 | + } | ||
28 | + | ||
29 | + public static void setProjectName(String projectName) { | ||
30 | + Model.projectName = projectName; | ||
31 | + } | ||
32 | + | ||
33 | + public static String getMaterialName() { | ||
34 | + return materialName; | ||
35 | + } | ||
36 | + | ||
37 | + public static void setMaterialName(String materialName) { | ||
38 | + Model.materialName = materialName; | ||
39 | + } | ||
40 | + | ||
24 | public static String getSerialNum() { | 41 | public static String getSerialNum() { |
25 | return serialNum; | 42 | return serialNum; |
26 | } | 43 | } |
src/main/java/com/essa/pageObject/BaseTest.java
@@ -8,58 +8,61 @@ import org.openqa.selenium.support.PageFactory; | @@ -8,58 +8,61 @@ import org.openqa.selenium.support.PageFactory; | ||
8 | 8 | ||
9 | /** | 9 | /** |
10 | * @author Administrator | 10 | * @author Administrator |
11 | - *测试用例的基类,主要是有登录和调用浏览器的方法 | 11 | + * 测试用例的基类,主要是有登录和调用浏览器的方法 |
12 | */ | 12 | */ |
13 | public class BaseTest { | 13 | public class BaseTest { |
14 | - public WebDriver driver; | 14 | + public WebDriver driver; |
15 | 15 | ||
16 | - public WebDriver getDriver() { | ||
17 | - return driver; | ||
18 | - } | ||
19 | - | ||
20 | - /** | ||
21 | - * bpms调用浏览器,打开要测试的网页 | ||
22 | - */ | ||
23 | - public void initsetUp() { | ||
24 | - BrowserEngine browserEngine = new BrowserEngine(); | 16 | + public WebDriver getDriver() { |
17 | + return driver; | ||
18 | + } | ||
19 | + | ||
20 | + /** | ||
21 | + * bpms调用浏览器,打开要测试的网页 | ||
22 | + */ | ||
23 | + public void initsetUp() { | ||
24 | + BrowserEngine browserEngine = new BrowserEngine(); | ||
25 | // try { | 25 | // try { |
26 | - browserEngine.initConfigData(); | 26 | + browserEngine.initConfigData(); |
27 | /*} catch (IOException e) { | 27 | /*} catch (IOException e) { |
28 | e.printStackTrace(); | 28 | e.printStackTrace(); |
29 | }*/ | 29 | }*/ |
30 | - driver = browserEngine.getBrowser(); | ||
31 | - } | ||
32 | - | ||
33 | - /** | ||
34 | - * buyer调用浏览器,将访问buyer的地址 | ||
35 | - */ | ||
36 | - public void initBuyer() { | ||
37 | - BrowserEngine browserEngine = new BrowserEngine(); | 30 | + driver = browserEngine.getBrowser(); |
31 | + } | ||
32 | + | ||
33 | + /** | ||
34 | + * buyer调用浏览器,将访问buyer的地址 | ||
35 | + */ | ||
36 | + public void initBuyer() { | ||
37 | + BrowserEngine browserEngine = new BrowserEngine(); | ||
38 | // try { | 38 | // try { |
39 | - browserEngine.initConfigData(); | 39 | + browserEngine.initConfigData(); |
40 | /* } catch (IOException e) { | 40 | /* } catch (IOException e) { |
41 | e.printStackTrace(); | 41 | e.printStackTrace(); |
42 | }*/ | 42 | }*/ |
43 | - driver = browserEngine.buyerGetBrowser(); | ||
44 | - } | 43 | + driver = browserEngine.buyerGetBrowser(); |
44 | + } | ||
45 | + | ||
46 | + /** | ||
47 | + * bpms初始化登录页面,登录 | ||
48 | + * | ||
49 | + * @param account | ||
50 | + */ | ||
51 | + public void loginValid(String account) { | ||
52 | + LoginPage loginPage = PageFactory.initElements(driver, LoginPage.class); | ||
53 | + loginPage.login(account, "essa123"); | ||
54 | + } | ||
45 | 55 | ||
46 | - /** | ||
47 | - * bpms初始化登录页面,登录 | ||
48 | - * @param account | ||
49 | - */ | ||
50 | - public void loginValid(String account) { | ||
51 | - LoginPage loginPage = PageFactory.initElements(driver, LoginPage.class); | ||
52 | - loginPage.login(account, "essa123"); | ||
53 | - } | ||
54 | - /** | ||
55 | - * buyer初始化登录 | ||
56 | - * @param account | ||
57 | - */ | ||
58 | - public void loginBuyerValid(String account,String password) { | ||
59 | - IndexPage indexPage = PageFactory.initElements(driver, IndexPage.class); | ||
60 | - indexPage.toLoginPage(); | ||
61 | - BuyerLoginPage loginPage = PageFactory.initElements(driver, BuyerLoginPage.class); | ||
62 | - loginPage.login(account, password); | ||
63 | - } | 56 | + /** |
57 | + * buyer初始化登录 | ||
58 | + * | ||
59 | + * @param account | ||
60 | + */ | ||
61 | + public void loginBuyerValid(String account, String password) { | ||
62 | + IndexPage indexPage = PageFactory.initElements(driver, IndexPage.class); | ||
63 | + indexPage.toLoginPage(); | ||
64 | + BuyerLoginPage loginPage = PageFactory.initElements(driver, BuyerLoginPage.class); | ||
65 | + loginPage.login(account, password); | ||
66 | + } | ||
64 | } | 67 | } |
65 | 68 |
src/main/java/com/essa/pageObject/GoodsManage/AddOriginalGoodsPage.java
1 | package com.essa.pageObject.GoodsManage; | 1 | package com.essa.pageObject.GoodsManage; |
2 | 2 | ||
3 | +import com.essa.pageObject.productDev.ProjectListPage; | ||
3 | import org.openqa.selenium.By; | 4 | import org.openqa.selenium.By; |
4 | import org.openqa.selenium.WebDriver; | 5 | import org.openqa.selenium.WebDriver; |
5 | import org.openqa.selenium.WebElement; | 6 | import org.openqa.selenium.WebElement; |
@@ -28,6 +29,10 @@ public class AddOriginalGoodsPage extends BasePage { | @@ -28,6 +29,10 @@ public class AddOriginalGoodsPage extends BasePage { | ||
28 | //选择供应商 | 29 | //选择供应商 |
29 | @FindBy (xpath="//*[@ng-click='supplier()']") | 30 | @FindBy (xpath="//*[@ng-click='supplier()']") |
30 | WebElement selectSupplier; | 31 | WebElement selectSupplier; |
32 | + | ||
33 | + //确定按钮-开发商品确认 | ||
34 | + @FindBy (xpath = "//*[text()='确定']") | ||
35 | + WebElement confrim; | ||
31 | 36 | ||
32 | //供应商查询方式选择 | 37 | //供应商查询方式选择 |
33 | @FindBy (xpath="//*[@ng-click='showSelect()']") | 38 | @FindBy (xpath="//*[@ng-click='showSelect()']") |
@@ -331,7 +336,7 @@ public class AddOriginalGoodsPage extends BasePage { | @@ -331,7 +336,7 @@ public class AddOriginalGoodsPage extends BasePage { | ||
331 | 336 | ||
332 | /** | 337 | /** |
333 | * 选择供应商 | 338 | * 选择供应商 |
334 | - * @param 供应商名称 | 339 | + * @param |
335 | * @throws InterruptedException | 340 | * @throws InterruptedException |
336 | */ | 341 | */ |
337 | public void selectSupplier(String supplierName){ | 342 | public void selectSupplier(String supplierName){ |
@@ -465,7 +470,7 @@ public class AddOriginalGoodsPage extends BasePage { | @@ -465,7 +470,7 @@ public class AddOriginalGoodsPage extends BasePage { | ||
465 | 470 | ||
466 | /** | 471 | /** |
467 | * 原厂商品建档,将上面的方法整合 | 472 | * 原厂商品建档,将上面的方法整合 |
468 | - * @param supplierName | 473 | + * @param |
469 | * @return | 474 | * @return |
470 | * @throws InterruptedException | 475 | * @throws InterruptedException |
471 | */ | 476 | */ |
@@ -478,6 +483,23 @@ public class AddOriginalGoodsPage extends BasePage { | @@ -478,6 +483,23 @@ public class AddOriginalGoodsPage extends BasePage { | ||
478 | goodsSpecifications(); | 483 | goodsSpecifications(); |
479 | return new GoodsRelesePage(driver); | 484 | return new GoodsRelesePage(driver); |
480 | } | 485 | } |
486 | + /** | ||
487 | + *开发商品建档保存 | ||
488 | + * @param | ||
489 | + * @return 项目立项书列表 | ||
490 | + */ | ||
491 | + public ProjectListPage addDevGood(){ | ||
492 | + forceWait(4000);//页面会刷几次,只能强制等待 | ||
493 | + moveHeightScroll("0"); | ||
494 | + forceWait(1000); | ||
495 | + click(save); | ||
496 | + forceWait(1000); | ||
497 | + if(isVisibility(By.xpath("//*[text()='确定']"))){ | ||
498 | + click(confrim); | ||
499 | + } | ||
500 | + dynamicLoad(); | ||
501 | + return new ProjectListPage(driver); | ||
502 | + } | ||
481 | 503 | ||
482 | /** | 504 | /** |
483 | * 用于断言是否商品建档成功 | 505 | * 用于断言是否商品建档成功 |
src/main/java/com/essa/pageObject/GoodsManage/AuditDevGoodsPage.java
0 → 100644
@@ -0,0 +1,52 @@ | @@ -0,0 +1,52 @@ | ||
1 | +package com.essa.pageObject.GoodsManage; | ||
2 | + | ||
3 | +import com.essa.framework.BasePage; | ||
4 | +import com.essa.framework.Model; | ||
5 | +import org.openqa.selenium.By; | ||
6 | +import org.openqa.selenium.WebDriver; | ||
7 | +import org.openqa.selenium.WebElement; | ||
8 | +import org.openqa.selenium.support.FindBy; | ||
9 | + | ||
10 | +public class AuditDevGoodsPage extends BasePage { | ||
11 | + /** | ||
12 | + * 构造方法 | ||
13 | + * | ||
14 | + * @param driver | ||
15 | + */ | ||
16 | + public AuditDevGoodsPage(WebDriver driver) { | ||
17 | + super(driver); | ||
18 | + } | ||
19 | + /** | ||
20 | + * 元素定位 | ||
21 | + */ | ||
22 | + @FindBy (xpath = "//*[@ng-model='query.skuCode']") | ||
23 | + WebElement skuNo;//sku编号 | ||
24 | + | ||
25 | + @FindBy (xpath = "//*[text()='查询']") | ||
26 | + WebElement search;//查询按钮 | ||
27 | + | ||
28 | + @FindBy (xpath = "//*[@ng-change='getCheckedStatus();']") | ||
29 | + WebElement checkbox;//复选框 | ||
30 | + | ||
31 | + @FindBy (xpath = "//*[text()='审核']") | ||
32 | + WebElement audit;//审核 | ||
33 | + | ||
34 | + /** | ||
35 | + * 页面方法 | ||
36 | + */ | ||
37 | + /** | ||
38 | + *跳转到审核页面,这里开发商品共用的原厂商品的审核页面 | ||
39 | + * @param | ||
40 | + * @return 原厂商品审核页面 | ||
41 | + */ | ||
42 | + public AuditOriginalOpreatePage auditDevGood(){ | ||
43 | +// dynamicLoad(); | ||
44 | + dynamicWait(By.xpath("//table[@class='table border-default margin-bottom-80 ng-scope ng-table']//tbody[1]")); | ||
45 | + sendKeys(skuNo, Model.getSkuNo()); | ||
46 | + click(search); | ||
47 | + forceWait(1000); | ||
48 | + click(checkbox); | ||
49 | + click(audit); | ||
50 | + return new AuditOriginalOpreatePage(driver); | ||
51 | + } | ||
52 | +} |
src/main/java/com/essa/pageObject/GoodsManage/AuditOriginalOpreatePage.java
1 | package com.essa.pageObject.GoodsManage; | 1 | package com.essa.pageObject.GoodsManage; |
2 | 2 | ||
3 | +import org.openqa.selenium.By; | ||
3 | import org.openqa.selenium.WebDriver; | 4 | import org.openqa.selenium.WebDriver; |
4 | import org.openqa.selenium.WebElement; | 5 | import org.openqa.selenium.WebElement; |
5 | import org.openqa.selenium.support.FindBy; | 6 | import org.openqa.selenium.support.FindBy; |
@@ -25,6 +26,18 @@ public class AuditOriginalOpreatePage extends BasePage { | @@ -25,6 +26,18 @@ public class AuditOriginalOpreatePage extends BasePage { | ||
25 | //审核通过提示语 | 26 | //审核通过提示语 |
26 | @FindBy(xpath="//*[text()='商品审核已通过'") | 27 | @FindBy(xpath="//*[text()='商品审核已通过'") |
27 | WebElement succeedMessage; | 28 | WebElement succeedMessage; |
29 | + | ||
30 | + //定价销售 | ||
31 | + @FindBy (xpath = "//*[@ng-model='skuItem.isFixedSale']") | ||
32 | + WebElement isFixedSale; | ||
33 | + | ||
34 | + //毛利率 | ||
35 | + @FindBy (xpath = "//*[@ng-model='skuItem.grossProfit2']") | ||
36 | + WebElement grossProfit; | ||
37 | + | ||
38 | + //工厂货号重复时,确定按钮 | ||
39 | + @FindBy (xpath = "//*[text()='确定']") | ||
40 | + WebElement confirm; | ||
28 | 41 | ||
29 | /* | 42 | /* |
30 | * 页面方法 | 43 | * 页面方法 |
@@ -36,8 +49,28 @@ public class AuditOriginalOpreatePage extends BasePage { | @@ -36,8 +49,28 @@ public class AuditOriginalOpreatePage extends BasePage { | ||
36 | */ | 49 | */ |
37 | public AuditOriginalGoodsPage auditPass() { | 50 | public AuditOriginalGoodsPage auditPass() { |
38 | forceWait(2000); | 51 | forceWait(2000); |
39 | - moveHeightScroll("100"); | 52 | + moveHeightScroll("0"); |
53 | + click(pass); | ||
54 | + forceWait(500); | ||
55 | + if (isVisibility(By.xpath("//*[text()='确定']"))) | ||
56 | + click(confirm); | ||
57 | + return new AuditOriginalGoodsPage(driver); | ||
58 | + } | ||
59 | + /** | ||
60 | + *开发商品审核通过,要设置毛利率 | ||
61 | + * @param | ||
62 | + * @return AuditOriginalGoodsPage | ||
63 | + */ | ||
64 | + public AuditOriginalGoodsPage auditDevGoodPass(){ | ||
65 | + forceWait(2000); | ||
66 | + moveHeightScroll("50"); | ||
67 | + selectElement(isFixedSale,"否"); | ||
68 | + sendKeys(grossProfit,"5"); | ||
69 | + moveHeightScroll("0"); | ||
40 | click(pass); | 70 | click(pass); |
71 | + forceWait(500); | ||
72 | + if (isVisibility(By.xpath("//*[text()='确定']"))) | ||
73 | + click(confirm); | ||
41 | return new AuditOriginalGoodsPage(driver); | 74 | return new AuditOriginalGoodsPage(driver); |
42 | } | 75 | } |
43 | 76 |
src/main/java/com/essa/pageObject/GoodsManage/GoodsRelesePage.java
1 | package com.essa.pageObject.GoodsManage; | 1 | package com.essa.pageObject.GoodsManage; |
2 | 2 | ||
3 | +import com.essa.framework.Model; | ||
3 | import org.openqa.selenium.By; | 4 | import org.openqa.selenium.By; |
4 | import org.openqa.selenium.WebDriver; | 5 | import org.openqa.selenium.WebDriver; |
5 | import org.openqa.selenium.WebElement; | 6 | import org.openqa.selenium.WebElement; |
@@ -37,6 +38,15 @@ public class GoodsRelesePage extends BasePage { | @@ -37,6 +38,15 @@ public class GoodsRelesePage extends BasePage { | ||
37 | String no = AddOriginalGoodsPage.getSkuNameNo(); | 38 | String no = AddOriginalGoodsPage.getSkuNameNo(); |
38 | return driver.findElement(By.xpath("//*[contains(text(),'"+no+"')]/../../td[1]/input")); | 39 | return driver.findElement(By.xpath("//*[contains(text(),'"+no+"')]/../../td[1]/input")); |
39 | } | 40 | } |
41 | + | ||
42 | + @FindBy (xpath = "//*[@ng-model='query.keyword']") | ||
43 | + WebElement keyword;//关键字 | ||
44 | + | ||
45 | + @FindBy (xpath = "//*[@ng-click='search()']") | ||
46 | + WebElement search;//查询按钮 | ||
47 | + | ||
48 | + @FindBy (xpath = "//*[@ng-table='preUploadCtrlTableParams']/tbody[1]/tr[1]/td[1]/input") | ||
49 | + WebElement checkbox;//第一个复选框 | ||
40 | 50 | ||
41 | //图片更新 | 51 | //图片更新 |
42 | @FindBy(xpath="//*[contains(text(),'图片更新')]") | 52 | @FindBy(xpath="//*[contains(text(),'图片更新')]") |
@@ -73,6 +83,22 @@ public class GoodsRelesePage extends BasePage { | @@ -73,6 +83,22 @@ public class GoodsRelesePage extends BasePage { | ||
73 | click(edit); | 83 | click(edit); |
74 | return new EditSpuPage(driver); | 84 | return new EditSpuPage(driver); |
75 | } | 85 | } |
86 | + | ||
87 | + /** | ||
88 | + *开发商品更新图片 | ||
89 | + * @param | ||
90 | + * @return 更新图片详情页 | ||
91 | + */ | ||
92 | + public UpdatePicPage toUpdateDevGoodPic(){ | ||
93 | + forceWait(2000); | ||
94 | + dynamicWait(By.xpath("//*[@ng-table='preUploadCtrlTableParams']/tbody[1]/tr[1]/td[1]/input")); | ||
95 | + sendKeys(keyword,Model.getSkuNo()); | ||
96 | + click(search); | ||
97 | + forceWait(1500); | ||
98 | + click(checkbox); | ||
99 | + click(updatePic); | ||
100 | + return new UpdatePicPage(driver); | ||
101 | + } | ||
76 | 102 | ||
77 | /** | 103 | /** |
78 | * 断言商品建档是否成功 | 104 | * 断言商品建档是否成功 |
src/main/java/com/essa/pageObject/GoodsManage/UpdatePicPage.java
1 | package com.essa.pageObject.GoodsManage; | 1 | package com.essa.pageObject.GoodsManage; |
2 | 2 | ||
3 | +import com.essa.framework.Model; | ||
3 | import org.openqa.selenium.By; | 4 | import org.openqa.selenium.By; |
4 | import org.openqa.selenium.WebDriver; | 5 | import org.openqa.selenium.WebDriver; |
5 | import org.openqa.selenium.WebElement; | 6 | import org.openqa.selenium.WebElement; |
@@ -15,7 +16,7 @@ public class UpdatePicPage extends BasePage { | @@ -15,7 +16,7 @@ public class UpdatePicPage extends BasePage { | ||
15 | public UpdatePicPage(WebDriver driver) { | 16 | public UpdatePicPage(WebDriver driver) { |
16 | super(driver); | 17 | super(driver); |
17 | } | 18 | } |
18 | - public static String picPath; | 19 | +// public static String picPath; |
19 | 20 | ||
20 | /* | 21 | /* |
21 | * 元素定位 | 22 | * 元素定位 |
@@ -62,18 +63,12 @@ public class UpdatePicPage extends BasePage { | @@ -62,18 +63,12 @@ public class UpdatePicPage extends BasePage { | ||
62 | forceWait(2000); | 63 | forceWait(2000); |
63 | dynamicWait(By.xpath("//*[text()='SPU信息']")); | 64 | dynamicWait(By.xpath("//*[text()='SPU信息']")); |
64 | click(spuUploadPic); | 65 | click(spuUploadPic); |
65 | - uploadFile(picPath); | ||
66 | - //如果spu图片还在上传,则等待2秒 | ||
67 | - /*while(!isElementExist(spuPic)) { | ||
68 | - forceWait(2000); | ||
69 | - }*/ | 66 | +// uploadFile(picPath); |
67 | + uploadFile(Model.getPicPath()); | ||
70 | dynamicWait(By.xpath("//*[@class='load-pic']")); | 68 | dynamicWait(By.xpath("//*[@class='load-pic']")); |
71 | click(skuUploadPic); | 69 | click(skuUploadPic); |
72 | - uploadFile(picPath); | ||
73 | - //如果默认的sku图片还存在,说明图片还在上传,继续等待 | ||
74 | - /*while (!isElementExist(skuPic)) { | ||
75 | - forceWait(2000); | ||
76 | - }*/ | 70 | +// uploadFile(picPath); |
71 | + uploadFile(Model.getPicPath()); | ||
77 | dynamicWait(By.xpath("//*[contains(@ng-click,'picInfo,')]")); | 72 | dynamicWait(By.xpath("//*[contains(@ng-click,'picInfo,')]")); |
78 | forceWait(1000); | 73 | forceWait(1000); |
79 | click(save); | 74 | click(save); |
@@ -88,11 +83,11 @@ public class UpdatePicPage extends BasePage { | @@ -88,11 +83,11 @@ public class UpdatePicPage extends BasePage { | ||
88 | return isElementExist(succeedMessage); | 83 | return isElementExist(succeedMessage); |
89 | } | 84 | } |
90 | 85 | ||
91 | - /** | ||
92 | - * 通过GUI设置本机图片路径 | ||
93 | - * @param picpath | ||
94 | - */ | ||
95 | - public static void setPicPath(String picpath) { | ||
96 | - picPath = picpath; | ||
97 | - } | 86 | +// /** |
87 | +// * 通过GUI设置本机图片路径 | ||
88 | +// * @param picpath | ||
89 | +// */ | ||
90 | +// public static void setPicPath(String picpath) { | ||
91 | +// picPath = picpath; | ||
92 | +// } | ||
98 | } | 93 | } |
src/main/java/com/essa/pageObject/HomePage.java
@@ -2,18 +2,16 @@ package com.essa.pageObject; | @@ -2,18 +2,16 @@ package com.essa.pageObject; | ||
2 | 2 | ||
3 | import com.essa.pageObject.DocumentaryManage.POBoardPage; | 3 | import com.essa.pageObject.DocumentaryManage.POBoardPage; |
4 | import com.essa.pageObject.DocumentaryManage.ReceiptCorePage; | 4 | import com.essa.pageObject.DocumentaryManage.ReceiptCorePage; |
5 | +import com.essa.pageObject.GoodsManage.*; | ||
5 | import com.essa.pageObject.SupplierManage.SupplierOperationsTrackPage; | 6 | import com.essa.pageObject.SupplierManage.SupplierOperationsTrackPage; |
7 | +import com.essa.pageObject.productDev.AddMatterialPage; | ||
8 | +import com.essa.pageObject.productDev.AddProjectPage; | ||
9 | +import com.essa.pageObject.productDev.ProjectListPage; | ||
6 | import org.openqa.selenium.WebDriver; | 10 | import org.openqa.selenium.WebDriver; |
7 | import org.openqa.selenium.WebElement; | 11 | import org.openqa.selenium.WebElement; |
8 | import org.openqa.selenium.support.FindBy; | 12 | import org.openqa.selenium.support.FindBy; |
9 | import com.essa.framework.BasePage; | 13 | import com.essa.framework.BasePage; |
10 | import com.essa.framework.Model; | 14 | import com.essa.framework.Model; |
11 | -import com.essa.pageObject.GoodsManage.AddOriginalGoodsPage; | ||
12 | -import com.essa.pageObject.GoodsManage.AuditMarketGoodsPage; | ||
13 | -import com.essa.pageObject.GoodsManage.AuditOriginalGoodsPage; | ||
14 | -import com.essa.pageObject.GoodsManage.GoodsBankPage; | ||
15 | -import com.essa.pageObject.GoodsManage.GoodsRelesePage; | ||
16 | -import com.essa.pageObject.GoodsManage.MarketGoodsRelesePage; | ||
17 | import com.essa.pageObject.DocumentaryManage.PODocumentaryListPage; | 15 | import com.essa.pageObject.DocumentaryManage.PODocumentaryListPage; |
18 | import com.essa.pageObject.StorageManage.GoodsReceiveTaskPage; | 16 | import com.essa.pageObject.StorageManage.GoodsReceiveTaskPage; |
19 | import com.essa.pageObject.StorageManage.NoticeReceivePage; | 17 | import com.essa.pageObject.StorageManage.NoticeReceivePage; |
@@ -60,6 +58,9 @@ public class HomePage extends BasePage{ | @@ -60,6 +58,9 @@ public class HomePage extends BasePage{ | ||
60 | //商品管理 | 58 | //商品管理 |
61 | @FindBy (xpath="//*[text()='商品管理']") | 59 | @FindBy (xpath="//*[text()='商品管理']") |
62 | WebElement goodsManage; | 60 | WebElement goodsManage; |
61 | + | ||
62 | + @FindBy (xpath = "//*[text()='开发商品发布审核']") | ||
63 | + WebElement DevGoodAudit;//开发商品发布审核 | ||
63 | 64 | ||
64 | //商品库 | 65 | //商品库 |
65 | @FindBy (xpath="//*[text()='商品库']") | 66 | @FindBy (xpath="//*[text()='商品库']") |
@@ -177,6 +178,10 @@ public class HomePage extends BasePage{ | @@ -177,6 +178,10 @@ public class HomePage extends BasePage{ | ||
177 | @FindBy (xpath = "//a[contains(text(),'收货任务管理')]") | 178 | @FindBy (xpath = "//a[contains(text(),'收货任务管理')]") |
178 | WebElement goodsReceiveTask; | 179 | WebElement goodsReceiveTask; |
179 | 180 | ||
181 | + //物料新增 | ||
182 | + @FindBy (xpath = "//*[text()='物料新增']") | ||
183 | + WebElement addMaterial; | ||
184 | + | ||
180 | /* | 185 | /* |
181 | * 方法 | 186 | * 方法 |
182 | */ | 187 | */ |
@@ -214,6 +219,7 @@ public class HomePage extends BasePage{ | @@ -214,6 +219,7 @@ public class HomePage extends BasePage{ | ||
214 | * @return GoodsRelesePage | 219 | * @return GoodsRelesePage |
215 | */ | 220 | */ |
216 | public GoodsRelesePage tGoodsRelesePage() { | 221 | public GoodsRelesePage tGoodsRelesePage() { |
222 | + getHome(); | ||
217 | click(goodsManage); | 223 | click(goodsManage); |
218 | click(goodsPublish); | 224 | click(goodsPublish); |
219 | return new GoodsRelesePage(driver); | 225 | return new GoodsRelesePage(driver); |
@@ -442,4 +448,45 @@ public class HomePage extends BasePage{ | @@ -442,4 +448,45 @@ public class HomePage extends BasePage{ | ||
442 | click(Receipt_core); | 448 | click(Receipt_core); |
443 | return new ReceiptCorePage (driver); | 449 | return new ReceiptCorePage (driver); |
444 | } | 450 | } |
451 | + /** | ||
452 | + *进入开发商品发布审核 | ||
453 | + * @param | ||
454 | + * @return 开发商品发布审核 | ||
455 | + */ | ||
456 | + public AuditDevGoodsPage toAuditDevgoodsPage(){ | ||
457 | + click(goodsManage); | ||
458 | + click(DevGoodAudit); | ||
459 | + return new AuditDevGoodsPage(driver); | ||
460 | + } | ||
461 | + /** | ||
462 | + *进入项目立项书新增页面 | ||
463 | + * @param | ||
464 | + * @return 项目立项书新增 | ||
465 | + */ | ||
466 | + public AddProjectPage toAddProject(){ | ||
467 | + click(productDev); | ||
468 | + click(addProject); | ||
469 | + return new AddProjectPage(driver); | ||
470 | + } | ||
471 | + /** | ||
472 | + *进入物料新增页面 | ||
473 | + * @param | ||
474 | + * @return 物料新增页面 | ||
475 | + */ | ||
476 | + public AddMatterialPage toMaterialPage(){ | ||
477 | + click(productDev); | ||
478 | + click(addMaterial); | ||
479 | + return new AddMatterialPage(driver); | ||
480 | + } | ||
481 | + /** | ||
482 | + *进入项目立项书列表 | ||
483 | + * @param | ||
484 | + * @return 项目立项书查询 | ||
485 | + */ | ||
486 | + public ProjectListPage toProjectListPage(){ | ||
487 | + getHome(); | ||
488 | + click(productDev); | ||
489 | + click(quiryProject); | ||
490 | + return new ProjectListPage(driver); | ||
491 | + } | ||
445 | } | 492 | } |
446 | \ No newline at end of file | 493 | \ No newline at end of file |
src/main/java/com/essa/pageObject/productDev/AddMatterialPage.java
0 → 100644
@@ -0,0 +1,123 @@ | @@ -0,0 +1,123 @@ | ||
1 | +package com.essa.pageObject.productDev; | ||
2 | + | ||
3 | +import com.essa.framework.BasePage; | ||
4 | +import com.essa.framework.Model; | ||
5 | +import com.essa.framework.Tools; | ||
6 | +import org.openqa.selenium.WebDriver; | ||
7 | +import org.openqa.selenium.WebElement; | ||
8 | +import org.openqa.selenium.support.FindBy; | ||
9 | +/* | ||
10 | +* @Description: 新增物料页面 | ||
11 | +* @Author: ZengJin | ||
12 | +* @CreateTime: 2018/10/29 | ||
13 | +*/ | ||
14 | +public class AddMatterialPage extends BasePage { | ||
15 | + /** | ||
16 | + * 构造方法 | ||
17 | + * | ||
18 | + * @param driver | ||
19 | + */ | ||
20 | + public AddMatterialPage(WebDriver driver) { | ||
21 | + super(driver); | ||
22 | + } | ||
23 | + | ||
24 | + /* | ||
25 | + 元素定位 | ||
26 | + */ | ||
27 | + @FindBy (xpath = "//*[text()='物料基础属性']") | ||
28 | + WebElement checkPoint;//检查点,物料基础属性 | ||
29 | + | ||
30 | + @FindBy (xpath = "//*[@ng-model='item.supplierPrice']") | ||
31 | + WebElement supplierPrice;//光身:供应商报价 | ||
32 | + | ||
33 | + @FindBy (xpath = "//*[@ng-model='item.bodyFclPrice']") | ||
34 | + WebElement bodyFclPrice;//光身:供应商整柜报价 | ||
35 | + | ||
36 | + @FindBy (xpath = "//*[@ng-model='item.purchaseMoq']") | ||
37 | + WebElement purchaseMoq;//光身:采购MOQ | ||
38 | + | ||
39 | + @FindBy (xpath = "//*[@ng-model='item.deliverDay']") | ||
40 | + WebElement deliverDay;//光身:货期 | ||
41 | + | ||
42 | + @FindBy (xpath = "//*[@ng-click='save()']") | ||
43 | + WebElement save;//保存 | ||
44 | + | ||
45 | + @FindBy (xpath = "//*[@ng-model='model.matFromType' and @ng-disabled='isUpdate']") | ||
46 | + WebElement matFrom;//物料来源 | ||
47 | + | ||
48 | + @FindBy (xpath = "//*[@ng-model='model.name']") | ||
49 | + WebElement matName;//物料名称 | ||
50 | + | ||
51 | + @FindBy (xpath = "//*[@ng-model='model.baseUnit']") | ||
52 | + WebElement baseUnit;//基准单位 | ||
53 | + | ||
54 | + @FindBy (xpath = "//*[@ng-click='openSelector()']") | ||
55 | + WebElement matType;//物料类型 | ||
56 | + | ||
57 | + @FindBy (xpath = "//*[text()='纸箱']") | ||
58 | + WebElement carton;//物料类型:纸箱 | ||
59 | + | ||
60 | + @FindBy (xpath = "//*[text()='海德印刷厂']/../td[3]/input") | ||
61 | + WebElement factoryNo;//工厂货号 | ||
62 | + | ||
63 | + @FindBy (xpath = "//*[text()='海德印刷厂']/../td[5]/select") | ||
64 | + WebElement purchaseUnit;//物料采购单位 | ||
65 | + | ||
66 | + @FindBy (xpath = "//*[text()='海德印刷厂']/../td[6]/input") | ||
67 | + WebElement unitExchangeRate;//换算值 | ||
68 | + | ||
69 | + @FindBy (xpath = "//*[text()='海德印刷厂']/../td[8]/input") | ||
70 | + WebElement matSupplierPrice;//物料:供应商报价 | ||
71 | + | ||
72 | + @FindBy (xpath = "//*[text()='海德印刷厂']/../td[10]/input") | ||
73 | + WebElement matPurchaseMoq;//物料:采购MOQ | ||
74 | + | ||
75 | + @FindBy (xpath = "//*[text()='海德印刷厂']/../td[12]/input") | ||
76 | + WebElement matDeliverDay;//物料:货期 | ||
77 | + | ||
78 | + /* | ||
79 | + 页面方法 | ||
80 | + */ | ||
81 | + /** | ||
82 | + * @Description: 新增光身物料方法 | ||
83 | + * @param: [] | ||
84 | + * @return: 项目立项书列表 | ||
85 | + * @Author: ZengJin | ||
86 | + * @CreateTime: 2018/10/29 | ||
87 | + */ | ||
88 | + public ProjectListPage addBodyMat(){ | ||
89 | + mywait(checkPoint); | ||
90 | + moveHeightScroll("100"); | ||
91 | + sendKeys(supplierPrice,"15"); | ||
92 | + sendKeys(bodyFclPrice,"14"); | ||
93 | + sendKeys(purchaseMoq,"15"); | ||
94 | + sendKeys(deliverDay,"7"); | ||
95 | + click(save); | ||
96 | + return new ProjectListPage(driver); | ||
97 | + } | ||
98 | + /** | ||
99 | + * @Description:新增物料 | ||
100 | + * @return: 物料列表页 | ||
101 | + * @Author: ZengJin | ||
102 | + * @CreateTime: 2018/10/29 | ||
103 | + */ | ||
104 | + public MaterialListPage addMaterial(){ | ||
105 | + mywait(checkPoint); | ||
106 | + selectElement(matFrom,"自主物料"); | ||
107 | + Model.setMaterialName("物料" + Tools.getTime()); | ||
108 | + sendKeys(matName,Model.getMaterialName()); | ||
109 | + selectElement(baseUnit,"只"); | ||
110 | + moveHeightScroll("100"); | ||
111 | + click(matType); | ||
112 | + click(carton); | ||
113 | + forceWait(1000); | ||
114 | + sendKeys(factoryNo,Tools.getFactoryNo()); | ||
115 | + selectElement(purchaseUnit,"只"); | ||
116 | + sendKeys(unitExchangeRate,"1"); | ||
117 | + sendKeys(matSupplierPrice,"5"); | ||
118 | + sendKeys(matPurchaseMoq,"15"); | ||
119 | + sendKeys(matDeliverDay,"5"); | ||
120 | + click(save); | ||
121 | + return new MaterialListPage(driver); | ||
122 | + } | ||
123 | +} |
src/main/java/com/essa/pageObject/productDev/AddProjectPage.java
1 | package com.essa.pageObject.productDev; | 1 | package com.essa.pageObject.productDev; |
2 | 2 | ||
3 | +import com.essa.framework.Model; | ||
4 | +import com.essa.framework.Tools; | ||
5 | +import org.openqa.selenium.By; | ||
3 | import org.openqa.selenium.WebDriver; | 6 | import org.openqa.selenium.WebDriver; |
4 | import org.openqa.selenium.WebElement; | 7 | import org.openqa.selenium.WebElement; |
5 | import org.openqa.selenium.support.FindBy; | 8 | import org.openqa.selenium.support.FindBy; |
6 | 9 | ||
7 | import com.essa.framework.BasePage; | 10 | import com.essa.framework.BasePage; |
8 | 11 | ||
12 | +import java.util.Date; | ||
13 | + | ||
9 | /** | 14 | /** |
10 | * @author Administrator | 15 | * @author Administrator |
11 | *新增项目立项书 | 16 | *新增项目立项书 |
@@ -50,12 +55,16 @@ public class AddProjectPage extends BasePage { | @@ -50,12 +55,16 @@ public class AddProjectPage extends BasePage { | ||
50 | WebElement Transactor1; | 55 | WebElement Transactor1; |
51 | 56 | ||
52 | //处理人-linrong | 57 | //处理人-linrong |
53 | - @FindBy (xpath ="//*[@id='role-user-select-box']/ul/li[3]/span") | 58 | + @FindBy (xpath ="//tbody//tr[1]//td[2]//div[1]//div[1]//ul[1]//li[3]") |
54 | WebElement linrong1; | 59 | WebElement linrong1; |
55 | 60 | ||
56 | //任务处理人 -第二个 | 61 | //任务处理人 -第二个 |
57 | @FindBy (xpath ="//*[@class='col-md-14']/table/tbody/tr[2]/td[2]/div/input") | 62 | @FindBy (xpath ="//*[@class='col-md-14']/table/tbody/tr[2]/td[2]/div/input") |
58 | WebElement Transactor2; | 63 | WebElement Transactor2; |
64 | + | ||
65 | + //处理人-第二个 | ||
66 | + @FindBy (xpath ="//tbody//tr[2]//td[2]//div[1]//div[1]//ul[1]//li[3]") | ||
67 | + WebElement linrong2; | ||
59 | 68 | ||
60 | //成员角色 -第一个 | 69 | //成员角色 -第一个 |
61 | @FindBy (xpath ="//*[@class='col-md-14']/table/tbody/tr[1]/td[3]/select") | 70 | @FindBy (xpath ="//*[@class='col-md-14']/table/tbody/tr[1]/td[3]/select") |
@@ -68,8 +77,75 @@ public class AddProjectPage extends BasePage { | @@ -68,8 +77,75 @@ public class AddProjectPage extends BasePage { | ||
68 | //选择改版商品信息 | 77 | //选择改版商品信息 |
69 | @FindBy (xpath ="//*[text()='选择']") | 78 | @FindBy (xpath ="//*[text()='选择']") |
70 | WebElement selectGoods; | 79 | WebElement selectGoods; |
71 | - | 80 | + |
81 | + @FindBy (xpath = "//*[@name='keyword']") | ||
82 | + WebElement searchContent; | ||
83 | + | ||
84 | + //添加商品-查询按钮 | ||
85 | + @FindBy (xpath = "//*[@ng-click='search(false)']") | ||
86 | + WebElement addSkuSearch; | ||
87 | + | ||
88 | + //添加商品-展开商品信息 | ||
89 | + @FindBy (xpath = "//*[contains(@class,'fa fa-angle-double-dow')]") | ||
90 | + WebElement showSku; | ||
91 | + | ||
92 | + //添加商品-搜索结果复选框 | ||
93 | + @FindBy (xpath = "//*[@ng-repeat='list in item.skus']/tbody") | ||
94 | + WebElement skuCheckbox; | ||
95 | + | ||
96 | + //确定按钮 | ||
97 | + @FindBy (xpath = "//*[contains(text(),'确定')]") | ||
98 | + WebElement confirm; | ||
99 | + | ||
72 | //保存 | 100 | //保存 |
73 | @FindBy (xpath ="//*[contains(text(),'保存')]") | 101 | @FindBy (xpath ="//*[contains(text(),'保存')]") |
74 | WebElement save; | 102 | WebElement save; |
103 | + | ||
104 | + //新增光身物料 | ||
105 | + @FindBy (xpath = "//*[@ng-click='relateAdd()']") | ||
106 | + WebElement addBodyMat; | ||
107 | + | ||
108 | + /* | ||
109 | + 页面方法 | ||
110 | + */ | ||
111 | + /* | ||
112 | + * @Description:新增项目立项书 | ||
113 | + * @param: [] | ||
114 | + * @return: 新增光身物料页面 | ||
115 | + * @Author: ZengJin | ||
116 | + * @CreateTime: 2018/10/29 | ||
117 | + */ | ||
118 | + public AddMatterialPage addProject(){ | ||
119 | + mywait(revisonType); | ||
120 | + selectElement(revisonType,"自主改版"); | ||
121 | + Model.setProjectName("自主改版"+ Tools.getTime()); | ||
122 | + sendKeys(projectName,Model.getProjectName()); | ||
123 | + click(projectLeader); | ||
124 | + click(linrong); | ||
125 | + selectElement(devLevel,"小改"); | ||
126 | + selectElement(devSerial,"男孩系列"); | ||
127 | + click(addMember); | ||
128 | + click(Transactor1); | ||
129 | + forceWait(500); | ||
130 | + click(linrong1); | ||
131 | + selectElement(role1,"项目经理"); | ||
132 | + click(Transactor2); | ||
133 | + forceWait(500); | ||
134 | + click(linrong2); | ||
135 | + selectElement(role2,"翻译人员"); | ||
136 | + click(selectGoods); | ||
137 | + dynamicLoad(By.xpath("//*[@class='loading ng-scope']")); | ||
138 | + String no = DBSqlSearch("SELECT no FROM prd_goods_sku WHERE src=1 ORDER BY create_time DESC LIMIT 1","no"); | ||
139 | + sendKeys(searchContent,no); | ||
140 | + click(addSkuSearch); | ||
141 | + forceWait(1000); | ||
142 | + click(showSku); | ||
143 | + click(skuCheckbox); | ||
144 | + click(confirm); | ||
145 | + forceWait(3000); | ||
146 | + click(save); | ||
147 | + forceWait(1000); | ||
148 | + click(addBodyMat); | ||
149 | + return new AddMatterialPage(driver); | ||
150 | + } | ||
75 | } | 151 | } |
src/main/java/com/essa/pageObject/productDev/EditBOMPage.java
0 → 100644
@@ -0,0 +1,76 @@ | @@ -0,0 +1,76 @@ | ||
1 | +package com.essa.pageObject.productDev; | ||
2 | + | ||
3 | +import com.essa.framework.BasePage; | ||
4 | +import com.essa.framework.Model; | ||
5 | +import org.openqa.selenium.WebDriver; | ||
6 | +import org.openqa.selenium.WebElement; | ||
7 | +import org.openqa.selenium.support.FindBy; | ||
8 | + | ||
9 | +/** | ||
10 | +* @Description: BOM修改页面 | ||
11 | +* @Author: ZengJin | ||
12 | +* @CreateTime: 2018/10/29 | ||
13 | +*/ | ||
14 | +public class EditBOMPage extends BasePage { | ||
15 | + /** | ||
16 | + * 构造方法 | ||
17 | + * | ||
18 | + * @param driver | ||
19 | + */ | ||
20 | + public EditBOMPage(WebDriver driver) { | ||
21 | + super(driver); | ||
22 | + } | ||
23 | + /** | ||
24 | + * 元素定位 | ||
25 | + */ | ||
26 | + @FindBy (xpath = "//*[@ng-click='materialChoose()']") | ||
27 | + WebElement matChoose;//物料选取 | ||
28 | + | ||
29 | + @FindBy (xpath = "//*[@name='keyword']") | ||
30 | + WebElement keyword;//关键字查询 | ||
31 | + | ||
32 | + @FindBy (xpath = "//*[@name='keyword']/../span/button") | ||
33 | + WebElement search;//查询按钮 | ||
34 | + | ||
35 | + @FindBy (xpath = "//*[@ng-click='materialSelected(item)']") | ||
36 | + WebElement checkbox;//复选框 | ||
37 | + | ||
38 | + @FindBy (xpath = "//*[contains(text(),'选定')]") | ||
39 | + WebElement selectedConfirm;//选定 | ||
40 | + | ||
41 | + @FindBy (xpath = "//*[text()='设置']") | ||
42 | + WebElement set;//集单物料:设置 | ||
43 | + | ||
44 | + @FindBy (xpath = "//*[@ng-click='selectBulkMat(item)']") | ||
45 | + WebElement selectBulkMat;//待选择的物料 | ||
46 | + | ||
47 | + @FindBy (xpath = "//*[@ng-click='save()']") | ||
48 | + WebElement save;//确定修改 | ||
49 | + | ||
50 | + /** | ||
51 | + * 页面方法 | ||
52 | + */ | ||
53 | + /** | ||
54 | + *编辑BOM,设置集单物料等 | ||
55 | + * @param | ||
56 | + * @return 项目立项书列表 | ||
57 | + */ | ||
58 | + public ProjectListPage editBom(){ | ||
59 | + mywait(matChoose); | ||
60 | + click(matChoose); | ||
61 | + forceWait(500); | ||
62 | + sendKeys(keyword, Model.getMaterialName()); | ||
63 | + click(search); | ||
64 | + forceWait(1000); | ||
65 | + click(checkbox); | ||
66 | + click(selectedConfirm); | ||
67 | + forceWait(500); | ||
68 | + click(set); | ||
69 | + click(selectBulkMat); | ||
70 | + click(selectedConfirm); | ||
71 | + forceWait(500); | ||
72 | + click(save); | ||
73 | + return new ProjectListPage(driver); | ||
74 | + } | ||
75 | + | ||
76 | +} |
src/main/java/com/essa/pageObject/productDev/MaterialListPage.java
0 → 100644
@@ -0,0 +1,65 @@ | @@ -0,0 +1,65 @@ | ||
1 | +package com.essa.pageObject.productDev; | ||
2 | + | ||
3 | +import com.essa.framework.BasePage; | ||
4 | +import com.essa.framework.Model; | ||
5 | +import org.openqa.selenium.WebDriver; | ||
6 | +import org.openqa.selenium.WebElement; | ||
7 | +import org.openqa.selenium.support.FindBy; | ||
8 | + | ||
9 | +/* | ||
10 | +* @Description:物料列表页面 | ||
11 | +* @Author: ZengJin | ||
12 | +* @CreateTime: 2018/10/29 | ||
13 | +*/ | ||
14 | +public class MaterialListPage extends BasePage { | ||
15 | + /** | ||
16 | + * 构造方法 | ||
17 | + * | ||
18 | + * @param driver | ||
19 | + */ | ||
20 | + public MaterialListPage(WebDriver driver) { | ||
21 | + super(driver); | ||
22 | + } | ||
23 | + /* | ||
24 | + 元素定位 | ||
25 | + */ | ||
26 | + @FindBy (xpath = "//table[@id='table-material-list']//tbody/tr[1]") | ||
27 | + WebElement firstResult;//列表第一个结果 | ||
28 | + | ||
29 | + @FindBy (xpath = "//*[@name='keyWord']") | ||
30 | + WebElement keyword;//关键字查询 | ||
31 | + | ||
32 | + @FindBy (xpath = "//*[@name='keyWord']/../span/button") | ||
33 | + WebElement search;//查询按钮 | ||
34 | + | ||
35 | + @FindBy (xpath = "//*[contains(text(),'供应商关联类型设置')]") | ||
36 | + WebElement supplierCatConfig;//供应商关联类型设置 | ||
37 | + | ||
38 | + @FindBy (xpath = "//tr[@class='ng-scope active']//select[@class='form-control ng-isolate-scope ng-pristine ng-valid']") | ||
39 | + WebElement AssociatioType;//关联类型 | ||
40 | + | ||
41 | + @FindBy (xpath = "//button[contains(text(),'确定')]") | ||
42 | + WebElement confirm;//确定 | ||
43 | + | ||
44 | + /* | ||
45 | + 页面方法 | ||
46 | + */ | ||
47 | + /** | ||
48 | + * @Description:设置核心供应商 | ||
49 | + * @return: 物料列表 | ||
50 | + * @Author: ZengJin | ||
51 | + * @CreateTime: 2018/10/29 | ||
52 | + */ | ||
53 | + public MaterialListPage setSupplierCatConfig(){ | ||
54 | + mywait(firstResult); | ||
55 | + sendKeys(keyword,Model.getMaterialName()); | ||
56 | + click(search); | ||
57 | + mywait(firstResult); | ||
58 | + forceWait(1000); | ||
59 | + click(supplierCatConfig); | ||
60 | + forceWait(1000); | ||
61 | + selectElement(AssociatioType,"核心供应商"); | ||
62 | + click(confirm); | ||
63 | + return new MaterialListPage(driver); | ||
64 | + } | ||
65 | +} |
src/main/java/com/essa/pageObject/productDev/ProjectListPage.java
0 → 100644
@@ -0,0 +1,99 @@ | @@ -0,0 +1,99 @@ | ||
1 | +package com.essa.pageObject.productDev; | ||
2 | + | ||
3 | +import com.essa.framework.BasePage; | ||
4 | +import com.essa.framework.Model; | ||
5 | +import com.essa.pageObject.GoodsManage.AddOriginalGoodsPage; | ||
6 | +import org.openqa.selenium.By; | ||
7 | +import org.openqa.selenium.WebDriver; | ||
8 | +import org.openqa.selenium.WebElement; | ||
9 | +import org.openqa.selenium.support.FindBy; | ||
10 | + | ||
11 | +/** | ||
12 | +* @Description: 项目立项书列表页面 | ||
13 | +* @Author: ZengJin | ||
14 | +* @CreateTime: 2018/10/29 | ||
15 | +*/ | ||
16 | +public class ProjectListPage extends BasePage { | ||
17 | + /** | ||
18 | + * 构造方法 | ||
19 | + * | ||
20 | + * @param driver | ||
21 | + */ | ||
22 | + public ProjectListPage(WebDriver driver) { | ||
23 | + super(driver); | ||
24 | + } | ||
25 | + | ||
26 | + /** | ||
27 | + 元素定位 | ||
28 | + */ | ||
29 | + @FindBy (xpath = "//table[@class='tree-grid table table-hover table-even-striped no-border border-default text-center table-fixed ng-scope ng-table']//tbody//tr[1]") | ||
30 | + WebElement firstResult;//第一个查询结果 | ||
31 | + | ||
32 | + @FindBy (xpath = "//*[@name='keyWord']") | ||
33 | + WebElement keyword;//关键字查询 | ||
34 | + | ||
35 | + @FindBy (xpath = "//*[@name='keyWord']/../span/button") | ||
36 | + WebElement search;//查询按钮 | ||
37 | + | ||
38 | + @FindBy (xpath = "//*[@ng-click='updateBom()']") | ||
39 | + WebElement updateBom;//BOM更新 | ||
40 | + | ||
41 | + @FindBy (xpath = "//*[text()='确定']") | ||
42 | + WebElement confirm;//确定按钮 | ||
43 | + | ||
44 | + @FindBy (xpath = "//*[@ng-click='singleGoodsPublic()']") | ||
45 | + WebElement DevGoodPublic;//开发单品发布 | ||
46 | + | ||
47 | + @FindBy (xpath = "//*[contains(text(),'不选择SPU')]") | ||
48 | + WebElement NotChooseSpu;//不选择SPU | ||
49 | + | ||
50 | + @FindBy (xpath = "//*[@data-ng-bind='item.publishSkuCode']") | ||
51 | + WebElement DevGoodNo;//开发商品编号 | ||
52 | + | ||
53 | + /** | ||
54 | + * 页面方法 | ||
55 | + */ | ||
56 | + /** | ||
57 | + *BOM更新方法 | ||
58 | + * @param | ||
59 | + * @return 编辑BOM页面 | ||
60 | + */ | ||
61 | + public EditBOMPage updateBom(){ | ||
62 | + mywait(firstResult); | ||
63 | + sendKeys(keyword,Model.getProjectName()); | ||
64 | + click(search); | ||
65 | + dynamicLoad(); | ||
66 | + click(firstResult); | ||
67 | + click(updateBom); | ||
68 | + return new EditBOMPage(driver); | ||
69 | + } | ||
70 | + | ||
71 | + /** | ||
72 | + *开发单品发布,由于这里只是点击一下保存,故共用新增原厂商品的一个保存方法 | ||
73 | + * @param | ||
74 | + * @return 确认开发商品档案页面 | ||
75 | + */ | ||
76 | + public AddOriginalGoodsPage publicDevGood(){ | ||
77 | + click(confirm); | ||
78 | + sendKeys(keyword,Model.getProjectName()); | ||
79 | + dynamicWait(By.xpath("//table[@class='tree-grid table table-hover table-even-striped no-border border-default text-center table-fixed ng-scope ng-table']//tbody//tr[1]")); | ||
80 | + click(search); | ||
81 | + dynamicLoad(); | ||
82 | + click(firstResult); | ||
83 | + click(DevGoodPublic); | ||
84 | + forceWait(1000); | ||
85 | + click(NotChooseSpu); | ||
86 | + return new AddOriginalGoodsPage(driver); | ||
87 | + } | ||
88 | + /** | ||
89 | + *获取到开发商品的编号,并且传递到model的skuNo字段中 | ||
90 | + * @param | ||
91 | + * @return | ||
92 | + */ | ||
93 | + public void getDevGoodNo(){ | ||
94 | + sendKeys(keyword,Model.getProjectName()); | ||
95 | + click(search); | ||
96 | + dynamicLoad(); | ||
97 | + Model.setSkuNo(getText(DevGoodNo)); | ||
98 | + } | ||
99 | +} |
src/main/java/com/essa/testSuite/TestAddDevGood.java
0 → 100644
@@ -0,0 +1,83 @@ | @@ -0,0 +1,83 @@ | ||
1 | +package com.essa.testSuite; | ||
2 | + | ||
3 | +import com.essa.pageObject.BaseTest; | ||
4 | +import com.essa.pageObject.GoodsManage.*; | ||
5 | +import com.essa.pageObject.HomePage; | ||
6 | +import com.essa.pageObject.productDev.*; | ||
7 | +import org.openqa.selenium.WebDriver; | ||
8 | +import org.openqa.selenium.support.PageFactory; | ||
9 | +import org.testng.annotations.AfterClass; | ||
10 | +import org.testng.annotations.BeforeClass; | ||
11 | +import org.testng.annotations.Test; | ||
12 | + | ||
13 | + | ||
14 | +/** | ||
15 | +* @Description: 新增开发商品测试用例 | ||
16 | +* @Author: ZengJin | ||
17 | +* @CreateTime: 2018/10/29 | ||
18 | +*/ | ||
19 | +public class TestAddDevGood extends BaseTest { | ||
20 | + | ||
21 | + WebDriver driver; | ||
22 | + | ||
23 | + @BeforeClass | ||
24 | + public void setUp() { | ||
25 | + initsetUp(); | ||
26 | + loginValid("linrong"); | ||
27 | + } | ||
28 | + | ||
29 | + @AfterClass | ||
30 | + public void tearDown() { | ||
31 | + driver.quit(); | ||
32 | + } | ||
33 | + | ||
34 | + | ||
35 | + /** | ||
36 | + *新增开发商品 | ||
37 | + * @param | ||
38 | + * @return void | ||
39 | + */ | ||
40 | + @Test | ||
41 | + public void addDevGood(){ | ||
42 | + this.driver = getDriver(); | ||
43 | + HomePage homePage = PageFactory.initElements(driver,HomePage.class); | ||
44 | + AddProjectPage addProjectPage = PageFactory.initElements(driver,AddProjectPage.class); | ||
45 | + AddMatterialPage addMatterialPage = PageFactory.initElements(driver,AddMatterialPage.class); | ||
46 | + MaterialListPage materialListPage = PageFactory.initElements(driver,MaterialListPage.class); | ||
47 | + ProjectListPage projectListPage = PageFactory.initElements(driver,ProjectListPage.class); | ||
48 | + EditBOMPage editBOMPage = PageFactory.initElements(driver,EditBOMPage.class); | ||
49 | + AddOriginalGoodsPage addOriginalGoodsPage = PageFactory.initElements(driver,AddOriginalGoodsPage.class); | ||
50 | + homePage.toAddProject(); | ||
51 | + addProjectPage.addProject();//新增立项书 | ||
52 | + addMatterialPage.addBodyMat();//新增光身物料 | ||
53 | + homePage.toMaterialPage(); | ||
54 | + addMatterialPage.addMaterial();//新增物料 | ||
55 | + materialListPage.setSupplierCatConfig();//设置核心供应商 | ||
56 | + homePage.toProjectListPage(); | ||
57 | + projectListPage.updateBom();//更新BOM | ||
58 | + editBOMPage.editBom();//编辑BOM,设置集单物料 | ||
59 | + projectListPage.publicDevGood();//发布开发单品 | ||
60 | + addOriginalGoodsPage.addDevGood();//确认发布开发商品 | ||
61 | + projectListPage.getDevGoodNo();//将新增的skuNo传递到model | ||
62 | + } | ||
63 | + /** | ||
64 | + *审核开发商品 | ||
65 | + * @param | ||
66 | + * @return | ||
67 | + */ | ||
68 | + @Test | ||
69 | + public void publicDevGood(){ | ||
70 | + this.driver = getDriver(); | ||
71 | + HomePage homePage = PageFactory.initElements(driver,HomePage.class); | ||
72 | + GoodsRelesePage goodsRelesePage = PageFactory.initElements(driver,GoodsRelesePage.class); | ||
73 | + UpdatePicPage updatePicPage = PageFactory.initElements(driver,UpdatePicPage.class); | ||
74 | + AuditDevGoodsPage auditDevGoodsPage = PageFactory.initElements(driver,AuditDevGoodsPage.class); | ||
75 | + AuditOriginalOpreatePage auditOriginalOpreatePage = PageFactory.initElements(driver,AuditOriginalOpreatePage.class); | ||
76 | + homePage.tGoodsRelesePage(); | ||
77 | + goodsRelesePage.toUpdateDevGoodPic();//更新开发商品图片 | ||
78 | + updatePicPage.upDatePic(); | ||
79 | + homePage.toAuditDevgoodsPage();//进入开发商品发布审核 | ||
80 | + auditDevGoodsPage.auditDevGood(); | ||
81 | + auditOriginalOpreatePage.auditDevGoodPass();//审核通过 | ||
82 | + } | ||
83 | +} |
src/main/java/swing/SwingMain.java
@@ -565,7 +565,8 @@ public class SwingMain { | @@ -565,7 +565,8 @@ public class SwingMain { | ||
565 | List<String> suites = new ArrayList<String>(); | 565 | List<String> suites = new ArrayList<String>(); |
566 | if (Scene == "新增原厂商品") { | 566 | if (Scene == "新增原厂商品") { |
567 | AddOriginalGoodsPage.setSupplierName(supplierName.getText()); | 567 | AddOriginalGoodsPage.setSupplierName(supplierName.getText()); |
568 | - UpdatePicPage.setPicPath(picPath.getText()); | 568 | +// UpdatePicPage.setPicPath(picPath.getText()); |
569 | + Model.setPicPath(picPath.getText()); | ||
569 | suites.add(SuitesEnum.ADD_ORIGINAL_GOODS.getSuiteName()); | 570 | suites.add(SuitesEnum.ADD_ORIGINAL_GOODS.getSuiteName()); |
570 | // suites.add(".\\resources\\suites\\addOriginalGoods.xml");// 图形界面 | 571 | // suites.add(".\\resources\\suites\\addOriginalGoods.xml");// 图形界面 |
571 | } else if (Scene == "新增市场商品") { | 572 | } else if (Scene == "新增市场商品") { |
@@ -576,7 +577,8 @@ public class SwingMain { | @@ -576,7 +577,8 @@ public class SwingMain { | ||
576 | // suites.add(".\\resources\\suites\\addMarketGoods.xml");// 图形界面 | 577 | // suites.add(".\\resources\\suites\\addMarketGoods.xml");// 图形界面 |
577 | } else if (Scene == "发布团购") { | 578 | } else if (Scene == "发布团购") { |
578 | AddOriginalGoodsPage.setSupplierName(supplierName.getText()); | 579 | AddOriginalGoodsPage.setSupplierName(supplierName.getText()); |
579 | - UpdatePicPage.setPicPath(picPath.getText()); | 580 | +// UpdatePicPage.setPicPath(picPath.getText()); |
581 | + Model.setPicPath(picPath.getText()); | ||
580 | suites.add(SuitesEnum.PUBLISH_GROUP_PURCHASE.getSuiteName()); | 582 | suites.add(SuitesEnum.PUBLISH_GROUP_PURCHASE.getSuiteName()); |
581 | // suites.add(".\\resources\\suites\\publishGroupPurchase.xml");// 图形界面 | 583 | // suites.add(".\\resources\\suites\\publishGroupPurchase.xml");// 图形界面 |
582 | } else if (Scene == "采购商注册") { | 584 | } else if (Scene == "采购商注册") { |
@@ -0,0 +1,15 @@ | @@ -0,0 +1,15 @@ | ||
1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
2 | +<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" > | ||
3 | +<suite name="新增开发商品"> | ||
4 | + <test name="addDevGoods"> | ||
5 | + <classes> | ||
6 | + <class name="com.essa.testSuite.TestAddDevGood"> | ||
7 | + <methods> | ||
8 | + <include name="addDevGood" /> | ||
9 | + <include name="publicDevGood" /> | ||
10 | + </methods> | ||
11 | + </class> | ||
12 | + </classes> | ||
13 | + </test> | ||
14 | +</suite> | ||
15 | + |