UNPKG

glance-webdriver

Version:
108 lines (89 loc) 2.94 kB
"use strict"; 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;