UNPKG

browser-actions

Version:

Implementing Re-Usable Browser Actions For Cypress

129 lines (110 loc) 3.73 kB
const ReturnLocator = require("./readElement"); const re = new ReturnLocator(); Cypress.Commands.add("navigateToUrl", (url) => { cy.visit(url); }); Cypress.Commands.add("typeText", (elementObj, text) => { const element = re.returnElement(elementObj); element.type(text); }); Cypress.Commands.add("clickElement", (elementObj) => { const element = re.returnElement(elementObj); element.click(); }); Cypress.Commands.add("doubleClick", (elementObj) => { const element = re.returnElement(elementObj); element.dblclick(); }); Cypress.Commands.add("clearText", (elementObj) => { const element = re.returnElement(elementObj); element.clear(); }); /* Cypress.Commands.add( "validateAlertConfirmationMessage", (elementObj, message) => { // cy.on('window:alert', (str) => { // expect(str).to.equal('I am a JS Alert') // }) cy.on("window:confirm", () => true); cy.get(elementObj).should("have.text", message); } ); */ /* Cypress.Commands.add("validateAlertCancel", (elementObj) => { cy.on("window:confirm", () => false); cy.get("#result").should("have.text", elementObj); }); */ Cypress.Commands.add("reloadPage", (clearCache = false) => { cy.reload(clearCache); }); Cypress.Commands.add("downloadFile", (url, directory, fileName) => { return cy.getCookies().then((cookies) => { return cy.task("downloadFile", { url, directory, cookies, fileName, }); }); }); /* Cypress.Commands.add("clickLinkUsingText", (text) => { cy.get("a").contains(text).click(); }); */ /* Cypress.Commands.add("localStorageToken", (token) => { cy.window().its("localStorage.token").should("eq", token); }); */ /* Cypress.Commands.add("scrollToPosition", (elementObj, elementObj2) => { cy.scrollTo(elementObj, elementObj2); }); */ Cypress.Commands.add("scrollIntoViewElement", (elementObj) => { const element = re.returnElement(elementObj); element.scrollIntoView(); }); Cypress.Commands.add("selectValueByText", (elementObj, text) => { const element = re.returnElement(elementObj); element.select(text); }); Cypress.Commands.add("rightClick", (elementObj) => { const element = re.returnElement(elementObj); element.rightclick(); }); Cypress.Commands.add("getSessionStorage", (key) => { cy.window().then((window) => window.sessionStorage.getItem(key)); }); Cypress.Commands.add("setSessionStorage", (key, value) => { cy.window().then((window) => { window.sessionStorage.setItem(key, value); }); }); Cypress.Commands.add("dropdown", (elementObj, ChildObj, dropdownvalue) => { if (Object.keys(elementObj)[0] === "cyPath") { // cy.get('.erkvQe').find('li span').contains('Cypress Semiconductor').click() cy.get(`${Object.values(elementObj)[0]}`) .find(ChildObj) .contains(dropdownvalue) .click(); } else if (Object.keys(elementObj)[0] === "xpath") { cy.xpath(`${Object.values(elementObj)[0]}`) .find(ChildObj) .contains(dropdownvalue) .click(); } else if (Object.keys(elementObj)[0] === "id") { cy.get(`${Object.values(elementObj)[0]}`) .find(ChildObj) .contains(dropdownvalue) .click(); } else if (Object.keys(elementObj)[0] === "class") { cy.get(`${Object.values(elementObj)[0]}`) .find(ChildObj) .contains(dropdownvalue) .click(); } else if (Object.keys(elementObj)[0] === "attributeValue") { cy.get( `[${Object.keys(elementObj.attributeValue)[0]}=${ Object.values(elementObj.attributeValue)[0] }]` ) .find(ChildObj) .contains(dropdownvalue) .click(); } });