UNPKG

@redhat-developer/page-objects

Version:

Page Object API implementation for a VS Code editor used by ExTester framework.

67 lines 2.58 kB
"use strict"; /** * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License", destination); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * https://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ Object.defineProperty(exports, "__esModule", { value: true }); exports.hasAttribute = hasAttribute; exports.hasClass = hasClass; exports.hasNotClass = hasNotClass; exports.hasElement = hasElement; exports.fromAttribute = fromAttribute; exports.fromText = fromText; function hasAttribute(attr, value, locator) { return async (el) => { el = locator ? await el.findElement(locator) : el; const attrValue = await el.getAttribute(attr); if (value === undefined) { return attrValue !== null; } return attrValue === value; }; } function hasClass(classOrPredicate, locator) { return async (el) => { el = locator ? await el.findElement(locator) : el; const klasses = await el.getAttribute('class'); const segments = klasses?.split(/\s+/g); const predicate = typeof classOrPredicate === 'string' ? (klass) => klass === classOrPredicate : classOrPredicate; return segments.find(predicate) !== undefined; }; } function hasNotClass(klass, locator) { return async (el) => { el = locator ? await el.findElement(locator) : el; return !(await hasClass(klass).call(undefined, el)); }; } function hasElement(locatorSelector) { return async (el, locators) => { return (await el.findElements(locatorSelector(locators))).length > 0; }; } function fromAttribute(attribute, locator) { return async (el) => { el = locator ? await el.findElement(locator) : el; return await el.getAttribute(attribute); }; } function fromText(locator) { return async (el) => { el = locator ? await el.findElement(locator) : el; return await el.getText(); }; } //# sourceMappingURL=locators.js.map