computed-styles-regression-test
Version:
DOM & CSSOM based regression testing utility
66 lines • 1.93 kB
JavaScript
import { createErr, createOk } from 'option-t/plain_result';
import { UnknownError } from '../error.js';
export class ObjectModelTraverserByCDP {
cdp;
constructor(cdp) {
this.cdp = cdp;
}
static async initialize(cdp) {
const traverser = new ObjectModelTraverserByCDP(cdp);
try {
await traverser.cdp.send('DOM.enable', {});
await traverser.cdp.send('CSS.enable', {});
return createOk(traverser);
}
catch (error) {
return createErr(new UnknownError(error));
}
}
async getDocument() {
const result = await this.cdp.send('DOM.getDocument', {
depth: -1,
pierce: true,
});
return result;
}
async querySelectorAll(nodeId, selector) {
const result = await this.cdp.send('DOM.querySelectorAll', {
nodeId,
selector,
});
return result;
}
async describeNode(nodeId) {
const result = await this.cdp.send('DOM.describeNode', {
nodeId,
pierce: true,
depth: -1,
});
return result;
}
async getComputedStyleForNode(nodeId) {
const result = await this.cdp.send('CSS.getComputedStyleForNode', {
nodeId,
});
return result;
}
async getMatchedStylesForNode(nodeId) {
const result = await this.cdp.send('CSS.getMatchedStylesForNode', {
nodeId,
});
return result;
}
async forcePseudoState(nodeId, forcedPseudoClasses) {
try {
await this.cdp.send('CSS.forcePseudoState', {
nodeId,
forcedPseudoClasses,
});
return createOk(undefined);
}
catch (error) {
return createErr(new UnknownError(error));
}
}
}
//# sourceMappingURL=object-model-traverser.js.map