test: add a test for bounding box on partially visible element (#1011)
This commit is contained in:
parent
4be48a6b1b
commit
84ee297c4b
|
|
@ -86,6 +86,34 @@ module.exports.describe = function({testRunner, expect, FFOX, CHROMIUM, WEBKIT})
|
||||||
expect(Math.round(box.width * 100)).toBe(200 * 100);
|
expect(Math.round(box.width * 100)).toBe(200 * 100);
|
||||||
expect(Math.round(box.height * 100)).toBe(20 * 100);
|
expect(Math.round(box.height * 100)).toBe(20 * 100);
|
||||||
});
|
});
|
||||||
|
it('should work when inline box child is outside of viewport', async({page, server}) => {
|
||||||
|
await page.setContent(`
|
||||||
|
<style>
|
||||||
|
i {
|
||||||
|
position: absolute;
|
||||||
|
top: -1000px;
|
||||||
|
}
|
||||||
|
body {
|
||||||
|
margin: 0;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<span><i>woof</i><b>doggo</b></span>
|
||||||
|
`);
|
||||||
|
const handle = await page.$('span');
|
||||||
|
const box = await handle.boundingBox();
|
||||||
|
const webBoundingBox = await handle.evaluate(e => {
|
||||||
|
const rect = e.getBoundingClientRect();
|
||||||
|
return {x: rect.x, y: rect.y, width: rect.width, height: rect.height};
|
||||||
|
});
|
||||||
|
const round = box => ({
|
||||||
|
x: Math.round(box.x * 100),
|
||||||
|
y: Math.round(box.y * 100),
|
||||||
|
width: Math.round(box.width * 100),
|
||||||
|
height: Math.round(box.height * 100),
|
||||||
|
});
|
||||||
|
expect(round(box)).toEqual(round(webBoundingBox));
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('ElementHandle.contentFrame', function() {
|
describe('ElementHandle.contentFrame', function() {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue