| (async function(testRunner) { |
| const {page, session, dp} = await testRunner.startURL('resources/inline-wrap.html', 'Tests DOM.getContentQuads method.'); |
| |
| var NodeTracker = await testRunner.loadScript('../resources/node-tracker.js'); |
| var nodeTracker = new NodeTracker(dp); |
| await dp.DOM.enable(); |
| |
| const document = (await dp.DOM.getDocument()).result.root; |
| const node = (await dp.DOM.querySelector({nodeId: document.nodeId, selector: 'span'})).result; |
| const quads = (await dp.DOM.getContentQuads({nodeId: node.nodeId})).result.quads; |
| testRunner.log('Returned quads amount: ' + quads.length); |
| for (let i = 0; i < quads.length; ++i) { |
| const quad = quads[i]; |
| const nodeId = (await dp.DOM.getNodeForLocation(middlePoint(quad))).result.nodeId; |
| const node = nodeTracker.nodeForId(nodeId); |
| testRunner.log(`node at quad #${i}: ${node.nodeName}`); |
| } |
| |
| testRunner.completeTest(); |
| |
| function middlePoint(quad) { |
| let x = 0, y = 0; |
| for (let i = 0; i < 8; i += 2) { |
| x += quad[i]; |
| y += quad[i + 1]; |
| } |
| return { |
| x: Math.round(x / 4), |
| y: Math.round(y / 4) |
| }; |
| } |
| }) |
| |