chrominator
Version:
High Level automation framework for chrome
45 lines (33 loc) • 1.11 kB
JavaScript
const Node = require('./node')
const multiResolveResult = {}
var rawValue = function (_, result) {
return result.value
}
multiResolveResult['undefined:undefined'] = rawValue
multiResolveResult['boolean:undefined'] = rawValue
multiResolveResult['number:undefined'] = rawValue
multiResolveResult['string:undefined'] = rawValue
multiResolveResult['object:null'] = rawValue
// troubleshoot why this has issues
multiResolveResult['object:node'] = function (driver, result) {
return driver.DOM.requestNode({objectId: result.objectId}).then((result) => {
const node = new Node(driver, result.nodeId)
Object.defineProperty(node, 'objectId', {
value: result.objectId,
writable: false
})
return node
})
}
// TODO timezone is wrong...
multiResolveResult['object:date'] = function (driver, result) {
return new Date(result.description)
}
// need proxy for complex objects
module.exports = function (multiType, driver, result) {
if (multiResolveResult.hasOwnProperty(multiType)) {
return multiResolveResult[multiType](driver, result)
}
return result
}