glance-webdriver
Version:
Automation at a glance
108 lines (89 loc) • 2.94 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
function tagElementWithID(element, id) {
element.setAttribute("data-glance-id", id);
return id;
}
function waitForChange(element, name) {
return element.getAttribute(name);
}
function GlanceSelector(selector, customLabels, multiple, logLevel) {
glanceSelector.setLogLevel(logLevel);
return glanceSelector(selector, {
preload: {
labels: customLabels
}
});
}
function getAttributeFromClient(element, name) {
return element.getAttribute(name);
}
function addPropertiesToBrowser(propertyString) {
function functionReviver(key, value) {
if (key === "") return value;
if (typeof value === 'string') {
var startOfFunc = /^function[^\(]*\(([^\)]*)\)[^\{]*\{/;
var match = value.match(startOfFunc);
if (match) {
var args = match[1].split(',').map(function (arg) {
return arg.replace(/\s+/, '');
});
return new Function(args, value.replace(startOfFunc, '').replace(/\}$/, ''));
}
}
return value;
}
var properties = JSON.parse(propertyString, functionReviver);
glanceSelector.addExtension({
properties: properties
});
}
function serializeBrowserSideProperties(properties) {
function functionReplacer(key, value) {
if (typeof value === 'function') {
return value.toString();
}
return value;
}
var browserSideProperties = Object.keys(properties).reduce(function (o, k) {
if (properties[k].browser) {
o[k] = properties[k];
}
return o;
}, {});
return JSON.stringify(browserSideProperties, functionReplacer);
}
function getTagNameFromClient(element) {
return element.tagName;
}
function getTextFromClient(element) {
return element.textContent;
}
function getUrlFromClient() {
return document.location.href;
}
function getHTMLFromClient(element) {
return element.outerHTML;
}
function getSelectTextFromClient(select) {
var i = select.selectedIndex;
if (i == -1) return;
return select.options[i].text;
}
function checkGlanceSelector() {
return typeof glanceSelector != 'undefined';
}
exports.checkGlanceSelector = checkGlanceSelector;
exports.addPropertiesToBrowser = addPropertiesToBrowser;
exports.serializeBrowserSideProperties = serializeBrowserSideProperties;
exports.getAttributeFromClient = getAttributeFromClient;
exports.getTagNameFromClient = getTagNameFromClient;
exports.getTextFromClient = getTextFromClient;
exports.getUrlFromClient = getUrlFromClient;
exports.getHTMLFromClient = getHTMLFromClient;
exports.getSelectTextFromClient = getSelectTextFromClient;
exports.waitForChange = waitForChange;
exports.tagElementWithID = tagElementWithID;
exports.GlanceSelector = GlanceSelector;