mirror of
https://github.com/microsoft/playwright.git
synced 2025-06-26 21:40:17 +00:00
test: fix element.handle nested frames
This commit is contained in:
parent
e727ee0c81
commit
b45ea22660
18
src/dom.ts
18
src/dom.ts
@ -275,17 +275,17 @@ export class ElementHandle<T extends Node = Node> extends js.JSHandle<T> {
|
|||||||
point.y += border.y;
|
point.y += border.y;
|
||||||
}
|
}
|
||||||
const metrics = await this._world.delegate.layoutViewport();
|
const metrics = await this._world.delegate.layoutViewport();
|
||||||
// Give 6 (six) extra pixels to avoid any issues on viewport edge.
|
// Give 15 extra pixels to avoid any issues on viewport edge.
|
||||||
let scrollX = 0;
|
let scrollX = 0;
|
||||||
if (point.x < 6)
|
if (point.x < 15)
|
||||||
scrollX = point.x - 6;
|
scrollX = point.x - 15;
|
||||||
if (point.x > metrics.width - 6)
|
if (point.x > metrics.width - 15)
|
||||||
scrollX = point.x - metrics.width + 6;
|
scrollX = point.x - metrics.width + 15;
|
||||||
let scrollY = 0;
|
let scrollY = 0;
|
||||||
if (point.y < 6)
|
if (point.y < 15)
|
||||||
scrollY = point.y - 6;
|
scrollY = point.y - 15;
|
||||||
if (point.y > metrics.height - 6)
|
if (point.y > metrics.height - 15)
|
||||||
scrollY = point.y - metrics.height + 6;
|
scrollY = point.y - metrics.height + 15;
|
||||||
return { point, scrollX, scrollY };
|
return { point, scrollX, scrollY };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -2,8 +2,11 @@
|
|||||||
<script src='./script.js' type='text/javascript'></script>
|
<script src='./script.js' type='text/javascript'></script>
|
||||||
<style>
|
<style>
|
||||||
body {
|
body {
|
||||||
height: 100;
|
height: 100px;
|
||||||
margin: 8px;
|
margin: 8px;
|
||||||
|
border: 0;
|
||||||
|
background-color: #555;
|
||||||
|
|
||||||
}
|
}
|
||||||
div {
|
div {
|
||||||
line-height: 18px;
|
line-height: 18px;
|
||||||
|
|||||||
@ -1,14 +1,17 @@
|
|||||||
<style>
|
<style>
|
||||||
body {
|
body {
|
||||||
display: flex;
|
display: flex;
|
||||||
height: 100%;
|
height: 500px;
|
||||||
margin: 8px;
|
margin: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
body iframe {
|
body iframe {
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
flex-shrink: 1;
|
flex-shrink: 1;
|
||||||
|
border: 0;
|
||||||
|
background-color: green;
|
||||||
}
|
}
|
||||||
|
|
||||||
::-webkit-scrollbar{
|
::-webkit-scrollbar{
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,13 +2,14 @@
|
|||||||
body {
|
body {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
height: 100%;
|
height: 400px;
|
||||||
margin: 8px;
|
margin: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
body iframe {
|
body iframe {
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
flex-shrink: 1;
|
flex-shrink: 1;
|
||||||
|
border: 0;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
<iframe src='./frame.html' name='uno'></iframe>
|
<iframe src='./frame.html' name='uno'></iframe>
|
||||||
|
|||||||
@ -35,7 +35,7 @@ module.exports.addTests = function({testRunner, expect, FFOX, CHROME, WEBKIT}) {
|
|||||||
const nestedFrame = page.frames().find(frame => frame.name() === 'dos');
|
const nestedFrame = page.frames().find(frame => frame.name() === 'dos');
|
||||||
const elementHandle = await nestedFrame.$('div');
|
const elementHandle = await nestedFrame.$('div');
|
||||||
const box = await elementHandle.boundingBox();
|
const box = await elementHandle.boundingBox();
|
||||||
expect(box).toEqual({ x: 28, y: 276, width: 264, height: 18 });
|
expect(box).toEqual({ x: 24, y: 224, width: 268, height: 18 });
|
||||||
});
|
});
|
||||||
it('should return null for invisible elements', async({page, server}) => {
|
it('should return null for invisible elements', async({page, server}) => {
|
||||||
await page.setContent('<div style="display:none">hi</div>');
|
await page.setContent('<div style="display:none">hi</div>');
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user