diff --git a/web/packages/selfhosted/test/polyfill/classic_frames_injected/test.ts b/web/packages/selfhosted/test/polyfill/classic_frames_injected/test.ts index d5660b514..287512038 100644 --- a/web/packages/selfhosted/test/polyfill/classic_frames_injected/test.ts +++ b/web/packages/selfhosted/test/polyfill/classic_frames_injected/test.ts @@ -13,11 +13,28 @@ describe("Flash inside frame with injected ruffle", () => { it("polyfills inside a frame", async () => { await injectRuffleAndWait(browser); await browser.switchToFrame(await browser.$("#test-frame")); - await browser.$("ruffle-object").waitForExist(); + // TODO: After https://github.com/webdriverio/webdriverio/issues/13218 is fixed, use browser.$("ruffle-object") + await browser + .$( + () => + ( + document.querySelector( + "#test-frame", + ) as HTMLIFrameElement + ).contentDocument?.body.querySelector( + "ruffle-object", + ) as HTMLElement, + ) + .waitForExist(); - const actual = await browser - .$("#test-container") - .getHTML({ includeSelectorTag: false, pierceShadowRoot: false }); + // TODO: After https://github.com/webdriverio/webdriverio/issues/13218 is fixed + // use browser.$("#test-container").getHTML({ includeSelectorTag: false, pierceShadowRoot: false }); + const actual = await browser.execute(() => { + const el = ( + document.querySelector("#test-frame") as HTMLIFrameElement + ).contentDocument?.body.querySelector("#test-container"); + return el?.innerHTML; + }); const expected = fs.readFileSync( `${import.meta.dirname}/expected.html`, "utf8", @@ -39,11 +56,28 @@ describe("Flash inside frame with injected ruffle", () => { // And finally, check await browser.switchToFrame(null); await browser.switchToFrame(await browser.$("#test-frame")); - await browser.$("ruffle-object").waitForExist(); + // TODO: After https://github.com/webdriverio/webdriverio/issues/13218 is fixed, use browser.$("ruffle-object") + await browser + .$( + () => + ( + document.querySelector( + "#test-frame", + ) as HTMLIFrameElement + ).contentDocument?.body.querySelector( + "ruffle-object", + ) as HTMLElement, + ) + .waitForExist(); - const actual = await browser - .$("#test-container") - .getHTML({ includeSelectorTag: false, pierceShadowRoot: false }); + // TODO: After https://github.com/webdriverio/webdriverio/issues/13218 is fixed + // use browser.$("#test-container").getHTML({ includeSelectorTag: false, pierceShadowRoot: false }); + const actual = await browser.execute(() => { + const el = ( + document.querySelector("#test-frame") as HTMLIFrameElement + ).contentDocument?.body.querySelector("#test-container"); + return el?.innerHTML; + }); const expected = fs.readFileSync( `${import.meta.dirname}/expected.html`, "utf8", diff --git a/web/packages/selfhosted/test/polyfill/classic_frames_provided/test.ts b/web/packages/selfhosted/test/polyfill/classic_frames_provided/test.ts index 492fb2f99..7a533189c 100644 --- a/web/packages/selfhosted/test/polyfill/classic_frames_provided/test.ts +++ b/web/packages/selfhosted/test/polyfill/classic_frames_provided/test.ts @@ -12,11 +12,28 @@ describe("Flash inside frame with provided ruffle", () => { it("polyfills inside a frame", async () => { await browser.switchToFrame(await browser.$("#test-frame")); - await browser.$("ruffle-object").waitForExist(); + // TODO: After https://github.com/webdriverio/webdriverio/issues/13218 is fixed, use browser.$("ruffle-object") + await browser + .$( + () => + ( + document.querySelector( + "#test-frame", + ) as HTMLIFrameElement + ).contentDocument?.body.querySelector( + "ruffle-object", + ) as HTMLElement, + ) + .waitForExist(); - const actual = await browser - .$("#test-container") - .getHTML({ includeSelectorTag: false, pierceShadowRoot: false }); + // TODO: After https://github.com/webdriverio/webdriverio/issues/13218 is fixed + // use browser.$("#test-container").getHTML({ includeSelectorTag: false, pierceShadowRoot: false }); + const actual = await browser.execute(() => { + const el = ( + document.querySelector("#test-frame") as HTMLIFrameElement + ).contentDocument?.body.querySelector("#test-container"); + return el?.innerHTML; + }); const expected = fs.readFileSync( `${import.meta.dirname}/expected.html`, "utf8", @@ -38,11 +55,28 @@ describe("Flash inside frame with provided ruffle", () => { // And finally, check await browser.switchToFrame(null); await browser.switchToFrame(await browser.$("#test-frame")); - await browser.$("ruffle-object").waitForExist(); + // TODO: After https://github.com/webdriverio/webdriverio/issues/13218 is fixed, use browser.$("ruffle-object") + await browser + .$( + () => + ( + document.querySelector( + "#test-frame", + ) as HTMLIFrameElement + ).contentDocument?.body.querySelector( + "ruffle-object", + ) as HTMLElement, + ) + .waitForExist(); - const actual = await browser - .$("#test-container") - .getHTML({ includeSelectorTag: false, pierceShadowRoot: false }); + // TODO: After https://github.com/webdriverio/webdriverio/issues/13218 is fixed + // use browser.$("#test-container").getHTML({ includeSelectorTag: false, pierceShadowRoot: false }); + const actual = await browser.execute(() => { + const el = ( + document.querySelector("#test-frame") as HTMLIFrameElement + ).contentDocument?.body.querySelector("#test-container"); + return el?.innerHTML; + }); const expected = fs.readFileSync( `${import.meta.dirname}/expected.html`, "utf8", diff --git a/web/packages/selfhosted/test/polyfill/iframes_injected/test.ts b/web/packages/selfhosted/test/polyfill/iframes_injected/test.ts index 2ded87808..8db29c644 100644 --- a/web/packages/selfhosted/test/polyfill/iframes_injected/test.ts +++ b/web/packages/selfhosted/test/polyfill/iframes_injected/test.ts @@ -13,11 +13,28 @@ describe("Flash inside iframe with injected ruffle", () => { it("polyfills inside an iframe", async () => { await injectRuffleAndWait(browser); await browser.switchToFrame(await browser.$("#test-frame")); - await browser.$("ruffle-object").waitForExist(); + // TODO: After https://github.com/webdriverio/webdriverio/issues/13218 is fixed, use browser.$("ruffle-object") + await browser + .$( + () => + ( + document.querySelector( + "#test-frame", + ) as HTMLIFrameElement + ).contentDocument?.body.querySelector( + "ruffle-object", + ) as HTMLElement, + ) + .waitForExist(); - const actual = await browser - .$("#test-container") - .getHTML({ includeSelectorTag: false, pierceShadowRoot: false }); + // TODO: After https://github.com/webdriverio/webdriverio/issues/13218 is fixed + // use browser.$("#test-container").getHTML({ includeSelectorTag: false, pierceShadowRoot: false }); + const actual = await browser.execute(() => { + const el = ( + document.querySelector("#test-frame") as HTMLIFrameElement + ).contentDocument?.body.querySelector("#test-container"); + return el?.innerHTML; + }); const expected = fs.readFileSync( `${import.meta.dirname}/expected.html`, "utf8", @@ -38,11 +55,28 @@ describe("Flash inside iframe with injected ruffle", () => { // And finally, check await browser.switchToFrame(null); await browser.switchToFrame(await browser.$("#test-frame")); - await browser.$("ruffle-object").waitForExist(); + // TODO: After https://github.com/webdriverio/webdriverio/issues/13218 is fixed, use browser.$("ruffle-object") + await browser + .$( + () => + ( + document.querySelector( + "#test-frame", + ) as HTMLIFrameElement + ).contentDocument?.body.querySelector( + "ruffle-object", + ) as HTMLElement, + ) + .waitForExist(); - const actual = await browser - .$("#test-container") - .getHTML({ includeSelectorTag: false, pierceShadowRoot: false }); + // TODO: After https://github.com/webdriverio/webdriverio/issues/13218 is fixed + // use browser.$("#test-container").getHTML({ includeSelectorTag: false, pierceShadowRoot: false }); + const actual = await browser.execute(() => { + const el = ( + document.querySelector("#test-frame") as HTMLIFrameElement + ).contentDocument?.body.querySelector("#test-container"); + return el?.innerHTML; + }); const expected = fs.readFileSync( `${import.meta.dirname}/expected.html`, "utf8", diff --git a/web/packages/selfhosted/test/polyfill/iframes_provided/test.ts b/web/packages/selfhosted/test/polyfill/iframes_provided/test.ts index 6cf0cd8b0..017cad0ed 100644 --- a/web/packages/selfhosted/test/polyfill/iframes_provided/test.ts +++ b/web/packages/selfhosted/test/polyfill/iframes_provided/test.ts @@ -12,11 +12,28 @@ describe("Flash inside iframe with provided ruffle", () => { it("polyfills inside an iframe", async () => { await browser.switchToFrame(await browser.$("#test-frame")); - await browser.$("ruffle-object").waitForExist(); + // TODO: After https://github.com/webdriverio/webdriverio/issues/13218 is fixed, use browser.$("ruffle-object") + await browser + .$( + () => + ( + document.querySelector( + "#test-frame", + ) as HTMLIFrameElement + ).contentDocument?.body.querySelector( + "ruffle-object", + ) as HTMLElement, + ) + .waitForExist(); + // TODO: After https://github.com/webdriverio/webdriverio/issues/13218 is fixed + // use browser.$("#test-container").getHTML({ includeSelectorTag: false, pierceShadowRoot: false }); + const actual = await browser.execute(() => { + const el = ( + document.querySelector("#test-frame") as HTMLIFrameElement + ).contentDocument?.body.querySelector("#test-container"); + return el?.innerHTML; + }); - const actual = await browser - .$("#test-container") - .getHTML({ includeSelectorTag: false, pierceShadowRoot: false }); const expected = fs.readFileSync( `${import.meta.dirname}/expected.html`, "utf8", @@ -37,11 +54,28 @@ describe("Flash inside iframe with provided ruffle", () => { // And finally, check await browser.switchToFrame(null); await browser.switchToFrame(await browser.$("#test-frame")); - await browser.$("ruffle-object").waitForExist(); + // TODO: After https://github.com/webdriverio/webdriverio/issues/13218 is fixed, use browser.$("ruffle-object") + await browser + .$( + () => + ( + document.querySelector( + "#test-frame", + ) as HTMLIFrameElement + ).contentDocument?.body.querySelector( + "ruffle-object", + ) as HTMLElement, + ) + .waitForExist(); - const actual = await browser - .$("#test-container") - .getHTML({ includeSelectorTag: false, pierceShadowRoot: false }); + // TODO: After https://github.com/webdriverio/webdriverio/issues/13218 is fixed + // use browser.$("#test-container").getHTML({ includeSelectorTag: false, pierceShadowRoot: false }); + const actual = await browser.execute(() => { + const el = ( + document.querySelector("#test-frame") as HTMLIFrameElement + ).contentDocument?.body.querySelector("#test-container"); + return el?.innerHTML; + }); const expected = fs.readFileSync( `${import.meta.dirname}/expected.html`, "utf8",