fix(wk): support ElementHandle.ownerFrame (#338)
This commit is contained in:
parent
b59049f8e8
commit
f56ff07f19
|
|
@ -10,7 +10,7 @@
|
||||||
"playwright": {
|
"playwright": {
|
||||||
"chromium_revision": "724623",
|
"chromium_revision": "724623",
|
||||||
"firefox_revision": "1008",
|
"firefox_revision": "1008",
|
||||||
"webkit_revision": "1046"
|
"webkit_revision": "1052"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"unit": "node test/test.js",
|
"unit": "node test/test.js",
|
||||||
|
|
|
||||||
|
|
@ -383,7 +383,15 @@ export class WKPage implements PageDelegate {
|
||||||
}
|
}
|
||||||
|
|
||||||
async getOwnerFrame(handle: dom.ElementHandle): Promise<frames.Frame | null> {
|
async getOwnerFrame(handle: dom.ElementHandle): Promise<frames.Frame | null> {
|
||||||
return handle._context.frame;
|
const remoteObject = toRemoteObject(handle);
|
||||||
|
if (!remoteObject.objectId)
|
||||||
|
return null;
|
||||||
|
const nodeInfo = await this._session.send('DOM.describeNode', {
|
||||||
|
objectId: remoteObject.objectId
|
||||||
|
});
|
||||||
|
if (!nodeInfo.ownerFrameId)
|
||||||
|
return null;
|
||||||
|
return this._page._frameManager.frame(nodeInfo.ownerFrameId);
|
||||||
}
|
}
|
||||||
|
|
||||||
isElementHandle(remoteObject: any): boolean {
|
isElementHandle(remoteObject: any): boolean {
|
||||||
|
|
|
||||||
|
|
@ -134,7 +134,7 @@ module.exports.describe = function({testRunner, expect, FFOX, CHROME, WEBKIT}) {
|
||||||
const elementHandle = await frame.evaluateHandle(() => document.querySelector('#frame1'));
|
const elementHandle = await frame.evaluateHandle(() => document.querySelector('#frame1'));
|
||||||
expect(await elementHandle.ownerFrame()).toBe(frame);
|
expect(await elementHandle.ownerFrame()).toBe(frame);
|
||||||
});
|
});
|
||||||
it.skip(FFOX || WEBKIT)('should work for cross-frame evaluations', async({page,server}) => {
|
it.skip(FFOX)('should work for cross-frame evaluations', async({page,server}) => {
|
||||||
await page.goto(server.EMPTY_PAGE);
|
await page.goto(server.EMPTY_PAGE);
|
||||||
await utils.attachFrame(page, 'frame1', server.EMPTY_PAGE);
|
await utils.attachFrame(page, 'frame1', server.EMPTY_PAGE);
|
||||||
const frame = page.mainFrame();
|
const frame = page.mainFrame();
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue