OBA Website automated using playwright
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

113 lines
5.2 KiB

exports.OrderPage =
class OrderPage {
constructor(page) {
this.page = page;
this.ordersButton="//span[normalize-space()='Orders']";
this.ordersListButton="//a[normalize-space()='Order List']";
this.exportButton="//a[@class='treeview-item active']";
this.orderStatus="//select[@id='oba_edit_order_status_filter']";
this.usernameTextbox="//input[@id='oba_order_search']";
this.textBox="//input[@id='oba_order_search']";
this.filterButton="#oba_edit_order_filter";
this.orderName="//div[normalize-space()='Name : Shubya']";
this.orderEmail="//div[normalize-space()='Email : Shubya111@gmail.com']";
this.orderPhone="//div[normalize-space()='Phone : 919480111222']";
this.orderCost="//td[normalize-space()='200']";
this.orderQty="//tbody/tr[1]/td[6]";
this.orderAddressAPI="//div[normalize-space()='Address : 37, Thomas Mount, 627109']";
//orderidfor cancel
this.orderIdCancel="//div[normalize-space()='order_id : 670e240e14f563f755f3e2a4']";
//Order list XPaths to crooss check
this.orderdetails1 ="//table[@class='table table-sm']"; // order id,name,email,phone
this.OrderStatuses ="//tbody//tr//td[3]"; //order status
this.Ordercost ="//tbody//tr//td[2]"; //order cost
this.OrderItems ="//tbody//tr//td[5]"; //order items
this.OrderPrice ="//tbody//tr//td[7]"; //order price
this.OrderPaymentStatus ="tbody tr td:nth-child(10)"; //order payment status
this.orderlatestUpdate ="//tbody//tr//td[9]"; //order latest update
this.Order_qty = "//tbody//tr//td[6]"; //order qty
//OrderID Check xpath
this.userid="//div[normalize-space()='order_id : 670e249314f563f755f3e2a5']";
this.username="//div[normalize-space()='Name : DAYA']";
this.useremail="//div[normalize-space()='Email : Daya1234@gmail.com']";
this.userphone="//div[normalize-space()='Phone : 919480111111']";
this.userorderitems="//td[normalize-space()='T-Shirt']";
this.ordercost="//td[normalize-space()='604']";
this.orderqty="//td[normalize-space()='3']";
this.userorderstatus="//strong[normalize-space()='ORDER_STATUS_PENDING']";
//Order Rate Api
this.orderID="//div[normalize-space()='order_id : 67076b44272db54e96e423eb']";
this.orderRate="//tbody/tr[3]/td[8]";
}
//Click Order button
async clickOrdersButton(){
await this.page.locator(this.ordersButton).click();
}
//Click order list button
async clickOrdersListButton(){
await this.page.locator(this.ordersButton).click();
await this.page.locator(this.ordersListButton).click();
}
//Check order status
async orderStatusCheck(orderStatus){
await this.page.locator(this.ordersButton).click();
await this.page.locator(this.ordersListButton).click();
await this.page.locator(this.orderStatus).selectOption({label:orderStatus});
}
//Check filter button
async checkFilterButton(orderStatus){
await this.page.locator(this.ordersButton).click();
await this.page.locator(this.ordersListButton).click();
await this.page.locator(this.orderStatus).selectOption({label:orderStatus});
await this.page.locator(this.filterButton).click();
}
//Search text
async textBoxSearch(orderStatus, textBox){
await this.page.locator(this.ordersButton).click();
await this.page.locator(this.ordersListButton).click();
await this.page.locator(this.orderStatus).selectOption({label:orderStatus});
await this.page.locator(this.textBox).fill(textBox);
await this.page.locator(this.filterButton).click();
}
//search order
async searchOrder(orderStatus,username){
await this.page.locator(this.OrderStatus).selectOption(orderStatus); // add order status
await this.page.locator(this.usernameTextbox).fill(username); // add user name
await this.page.locator(this.filterButton).click(); //click filter button
const OrderId = await this.page.locator(this.orderdetails1).textContent(); // get order id
const OrderStatusis = await this.page.locator(this.OrderStatuses).textContent(); // get order status
const Order_cost = await this.page.locator(this.Ordercost).textContent(); // get order cost
const Order_items = await this.page.locator(this.OrderItems).textContent(); // get order items
const Order_price =await this.page.locator(this.OrderPrice ).textContent(); // get order price
const Order_payment =await this.page.locator(this.OrderPaymentStatus).textContent(); // get order payment status
const Order_latestupdate =await this.page.locator(this.orderlatestUpdate).textContent(); //get oder latest update
var Order_qty =await this.page.locator(this.Order_qty).textContent(); // get order quanity
return {OrderId,OrderStatusis,Order_cost,Order_items,Order_price,Order_payment,Order_latestupdate,Order_qty}
}
}