@progress/kendo-e2e
Version:
Kendo UI end-to-end test utilities.
134 lines • 5.56 kB
JavaScript
;
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