UNPKG

@progress/kendo-e2e

Version:

Kendo UI end-to-end test utilities.

134 lines 5.56 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.EC = void 0; const selenium_webdriver_1 = require("selenium-webdriver"); const VIEWPORT_SCRIPT = function (element) { const box = element.getBoundingClientRect(); const cx = box.left + box.width / 2; const cy = box.top + box.height / 2; let target = document.elementFromPoint(cx, cy); while (target) { if (target === element) { return true; } target = target.parentElement; } return false; }; class EC { static hasText(element, text) { return () => element.getText().then(result => { return result === text; }); } static hasValue(element, value) { return () => element.getAttribute("value").then(result => { return result === value; }); } static hasFocus(element) { return (driver) => __awaiter(this, void 0, void 0, function* () { const focused = yield driver.switchTo().activeElement(); return (yield element.getId()) === (yield focused.getId()); }); } static hasNoFocus(element) { return (driver) => __awaiter(this, void 0, void 0, function* () { const focused = yield driver.switchTo().activeElement(); return (yield element.getId()) !== (yield focused.getId()); }); } static hasChild(element, locator) { return () => __awaiter(this, void 0, void 0, function* () { return (locator instanceof selenium_webdriver_1.By) ? element.findElements(locator).then(result => { return result.length > 0; }) : element.findElements(selenium_webdriver_1.By.css(locator)).then(result => { return result.length > 0; }); }); } static hasAttribute(element, attribute, value, exactMatch = true) { return () => element.getAttribute(attribute).then(result => { if (exactMatch) { return result === value; } else { return result.includes(value); } }); } static hasClass(element, value, exactMatch = false) { return this.hasAttribute(element, "class", value, exactMatch); } static isVisible(element) { return (driver) => __awaiter(this, void 0, void 0, function* () { try { if (!(element instanceof selenium_webdriver_1.WebElement)) { element = (element instanceof selenium_webdriver_1.By) ? yield driver.findElement(element) : yield driver.findElement(selenium_webdriver_1.By.css(element)); } return yield element.isDisplayed(); } catch (_a) { return false; } }); } static notVisible(element) { return (driver) => __awaiter(this, void 0, void 0, function* () { try { if (!(element instanceof selenium_webdriver_1.WebElement)) { element = (element instanceof selenium_webdriver_1.By) ? yield driver.findElement(element) : yield driver.findElement(selenium_webdriver_1.By.css(element)); } return !(yield element.isDisplayed()); } catch (_a) { return true; } }); } static isInViewport(element) { return (driver) => __awaiter(this, void 0, void 0, function* () { try { if (!(element instanceof selenium_webdriver_1.WebElement)) { element = (element instanceof selenium_webdriver_1.By) ? yield driver.findElement(element) : yield driver.findElement(selenium_webdriver_1.By.css(element)); } const result = yield driver.executeScript(VIEWPORT_SCRIPT, element); return (result + '') === 'true'; } catch (_a) { return false; } }); } static notInViewport(element) { return (driver) => __awaiter(this, void 0, void 0, function* () { try { if (!(element instanceof selenium_webdriver_1.WebElement)) { element = (element instanceof selenium_webdriver_1.By) ? yield driver.findElement(element) : yield driver.findElement(selenium_webdriver_1.By.css(element)); } const result = yield driver.executeScript(VIEWPORT_SCRIPT, element); return (result + '') === 'false'; } catch (_a) { return true; } }); } } exports.EC = EC; //# sourceMappingURL=conditions.js.map