browser-actions
Version:
Implementing Re-Usable Browser Actions For Cypress
129 lines (110 loc) • 3.73 kB
JavaScript
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();
}
});