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.
 

191 lines
9.4 KiB

exports.ProductPage=
class ProductPage {
constructor(page) {
this.page = page;
this.productsButton = "//span[normalize-space()='Products']";
this.productListButton= "//a[normalize-space()='Product List']";
this.addProductButton="//a[normalize-space()='Add Product']";
this.productName="//input[@id='oba_product_name']";
this.productPrize="//input[@id='oba_product_price']";
this.managedRadioButton="//input[@id='managed']";
this.unmanagedRadioButton="//input[@id='unmanaged']";
this.productQuantityValue="//input[@id='oba_product_quantity']";
this.orderLimit="//input[@id='oba_product_order_limit']";
this.taxIn="//input[@id='oba_product_tax']";
this.productAvailableCheck="//input[@name='isAvailable']";
this.isLiveCheck="//input[@name='isLive']";
this.shortDescription="//textarea[@id='oba_product_short_description']";
this.productDescription="//textarea[@name='editor-html-code']";
this.productImage="#edit_image";
this.uploadImage="#oba_product_input_display";
this.productlistSearchBox="//input[@id='oba_product_search']";
this.searchBox="//i[@class='fa fa-lg fa-fw fa-search']";
this.editButton="//i[@class='fa fa-lg fa-edit']";
this.saveButton="//button[@class='btn btn-primary btn-block']";
this.deleteButton="//i[@class='fa fa-lg fa-trash']";
this.searchProduct="//input[@id='oba_product_search']";
this.searchButton="//button[@id='oba_product_search_btn']";
}
async clickProductsButton(){
await this.page.locator(this.productsButton).click();
}
async clickProductlistButton(){
await this.page.locator(this.productsButton).click();
await this.page.locator(this.productListButton).click();
}
async clickAddProductButton(){
await this.page.locator(this.productsButton).click();
await this.page.locator(this.addProductButton).click();
}
async addProductFunctionality(productName, productPrize, productQuantity, orderLimitvalue, taxin, shortDescription){
await this.page.locator(this.productsButton).click();
await this.page.locator(this.addProductButton).click();
await this.page.locator(this.productName).fill(productName);
await this.page.locator(this.productPrize).fill(productPrize);
await this.page.locator(this.managedRadioButton).check();
await this.page.locator(this.productQuantityValue).fill(productQuantity);
await this.page.locator(this.orderLimit).fill(orderLimitvalue);
await this.page.locator(this.taxIn).fill(taxin);
await this.page.locator(this.productAvailableCheck).check();
await this.page.locator(this.isLiveCheck).check();
await this.page.locator(this.shortDescription).fill(shortDescription);
await this.page.waitForSelector('.CodeMirror');
await this.page.evaluate(() => {
const codeMirrorElement = document.querySelector('.CodeMirror');
codeMirrorElement.CodeMirror.setValue('Yummy! Delicious Biriyani Taste the Beauty of Kanyakumari');
});
await this.page.locator(this.productImage).click();
await this.page.locator(this.uploadImage).setInputFiles("C:/Automate Testing/OBA Automation/Biriyani.jpg");
await this.page.locator(this.saveButton).click();
}
async addProductFunctionalityDelete(productName, productPrize, productQuantity, orderLimitvalue, taxin, shortDescription){
await this.page.locator(this.productsButton).click();
await this.page.locator(this.addProductButton).click();
await this.page.locator(this.productName).fill(productName);
await this.page.locator(this.productPrize).fill(productPrize);
await this.page.locator(this.managedRadioButton).check();
await this.page.locator(this.productQuantityValue).fill(productQuantity);
await this.page.locator(this.orderLimit).fill(orderLimitvalue);
await this.page.locator(this.taxIn).fill(taxin);
await this.page.locator(this.productAvailableCheck).check();
await this.page.locator(this.isLiveCheck).check();
await this.page.locator(this.shortDescription).fill(shortDescription);
await this.page.waitForSelector('.CodeMirror');
await this.page.evaluate(() => {
const codeMirrorElement = document.querySelector('.CodeMirror');
codeMirrorElement.CodeMirror.setValue('Yummy! Delicious Biriyani Taste the Beauty of Kanyakumari');
});
await this.page.locator(this.productImage).click();
await this.page.locator(this.uploadImage).setInputFiles("C:/Automate Testing/OBA Automation/Biriyani.jpg");
await this.page.locator(this.deleteButton).click();
}
async addProductFunctionalityForAll(productName, productPrize, productQuantity, orderLimitvalue, taxin, shortDescription){
await this.page.locator(this.productsButton).click();
await this.page.locator(this.addProductButton).click();
await this.page.locator(this.productName).fill(productName);
await this.page.locator(this.productPrize).fill(productPrize);
await this.page.locator(this.managedRadioButton).check();
await this.page.locator(this.productQuantityValue).fill(productQuantity);
await this.page.locator(this.orderLimit).fill(orderLimitvalue);
await this.page.locator(this.taxIn).fill(taxin);
await this.page.locator(this.productAvailableCheck).check();
await this.page.locator(this.isLiveCheck).check();
await this.page.locator(this.shortDescription).fill(shortDescription);
await this.page.waitForSelector('.CodeMirror');
await this.page.evaluate(() => {
const codeMirrorElement = document.querySelector('.CodeMirror');
codeMirrorElement.CodeMirror.setValue('Yummy! Delicious Taste, LifteTime Settlement');
});
//await this.page.locator(this.productImage).click();
// await this.page.locator(this.uploadImage).setInputFiles("C:/Automate Testing/OBA Automation/Biriyani.jpg");
await this.page.locator(this.saveButton).click();
}
async addProductFunctionalityUnmanaged(productName, productPrize, orderLimitvalue, taxin, shortDescription){
await this.page.locator(this.productsButton).click();
await this.page.locator(this.addProductButton).click();
await this.page.locator(this.productName).fill(productName);
await this.page.locator(this.productPrize).fill(productPrize);
await this.page.locator(this.unmanagedRadioButton).check();
await this.page.locator(this.orderLimit).fill(orderLimitvalue);
await this.page.locator(this.taxIn).fill(taxin);
await this.page.locator(this.productAvailableCheck).check();
await this.page.locator(this.isLiveCheck).check();
await this.page.locator(this.shortDescription).fill(shortDescription);
await this.page.waitForSelector('.CodeMirror');
await this.page.evaluate(() => {
const codeMirrorElement = document.querySelector('.CodeMirror');
codeMirrorElement.CodeMirror.setValue('Crispy Chicken Tandori');
});
await this.page.locator(this.productImage).click();
await this.page.locator(this.uploadImage).setInputFiles("C:/Automate Testing/OBA Automation/Tandori.jpg");
await this.page.locator(this.saveButton).click();
}
async addProductFunctionality1(productName, productPrize, productQuantity, orderLimitvalue, taxin, shortDescription){
await this.page.locator(this.productsButton).click();
await this.page.locator(this.addProductButton).click();
await this.page.locator(this.productName).fill(productName);
await this.page.locator(this.productPrize).fill(productPrize);
await this.page.locator(this.managedRadioButton).check();
await this.page.locator(this.productQuantityValue).fill(productQuantity);
await this.page.locator(this.orderLimit).fill(orderLimitvalue);
await this.page.locator(this.taxIn).fill(taxin);
await this.page.locator(this.productAvailableCheck).check();
await this.page.locator(this.isLiveCheck).check();
await this.page.locator(this.shortDescription).fill(shortDescription);
await this.page.waitForSelector('.CodeMirror');
await this.page.evaluate(() => {
const codeMirrorElement = document.querySelector('.CodeMirror');
codeMirrorElement.CodeMirror.setValue('Chicken Lollipop');
});
await this.page.locator(this.productImage).click();
await this.page.locator(this.uploadImage).setInputFiles("C:/Automate Testing/OBA Automation/Chicken Lollipop.jpg");
await this.page.locator(this.saveButton).click();
}
async searchProductName(productName){
await this.page.locator(this.productsButton).click();
await this.page.locator(this.productListButton).click();
await this.page.locator(this.searchProduct).fill(productName);
await this.page.locator(this.searchButton).click();
}
async editProduct(){
await this.page.locator(this.productsButton).click();
await this.page.locator(this.productListButton).click();
await this.page.locator(this.editButton).click();
await this.page.locator(this.productAvailableCheck).click();
await this.page.locator(this.saveButton).click();
}
}