@redhat-developer/page-objects
Version:
Page Object API implementation for a VS Code editor used by ExTester framework.
67 lines • 2.58 kB
JavaScript
/**
* 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
;