fix(wk): support ElementHandle.ownerFrame (#338)
This commit is contained in:
parent
b59049f8e8
commit
f56ff07f19
|
|
@ -10,7 +10,7 @@
|
|||
"playwright": {
|
||||
"chromium_revision": "724623",
|
||||
"firefox_revision": "1008",
|
||||
"webkit_revision": "1046"
|
||||
"webkit_revision": "1052"
|
||||
},
|
||||
"scripts": {
|
||||
"unit": "node test/test.js",
|
||||
|
|
|
|||
|
|
@ -383,7 +383,15 @@ export class WKPage implements PageDelegate {
|
|||
}
|
||||
|
||||
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 {
|
||||
|
|
|
|||
|
|
@ -134,7 +134,7 @@ module.exports.describe = function({testRunner, expect, FFOX, CHROME, WEBKIT}) {
|
|||
const elementHandle = await frame.evaluateHandle(() => document.querySelector('#frame1'));
|
||||
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 utils.attachFrame(page, 'frame1', server.EMPTY_PAGE);
|
||||
const frame = page.mainFrame();
|
||||
|
|
|
|||
Loading…
Reference in a new issue