diff --git a/tests/library/emulation-focus.spec.ts b/tests/library/emulation-focus.spec.ts index 3bf81b4968..27ad72127e 100644 --- a/tests/library/emulation-focus.spec.ts +++ b/tests/library/emulation-focus.spec.ts @@ -188,7 +188,6 @@ browserTest('should focus with more than one page/context', async ({ contextFact }); browserTest('should not fire blur events when interacting with more than one page/context', async ({ contextFactory, browserName }) => { - it.fixme(browserName === 'firefox', 'Firefox issues blur events for tabs'); browserTest.info().annotations.push({ type: 'issue', description: 'https://github.com/microsoft/playwright/issues/30399' }); const page1 = await (await contextFactory()).newPage(); const page2 = await (await contextFactory()).newPage(); diff --git a/tests/library/hit-target.spec.ts b/tests/library/hit-target.spec.ts index 4b97ffd6dd..1476018900 100644 --- a/tests/library/hit-target.spec.ts +++ b/tests/library/hit-target.spec.ts @@ -265,7 +265,7 @@ it('should not click an element overlaying iframe with the target', async ({ pag `); const target = page.frameLocator('iframe').frameLocator('iframe').locator('text=inner'); - const error = await target.click({ timeout: 1000 }).catch(e => e); + const error = await target.click({ timeout: 3000 }).catch(e => e); expect(await page.evaluate('window._clicked')).toBe(undefined); expect(error.message).toContain(`
PINK OVERLAY
intercepts pointer events`); diff --git a/tests/page/elementhandle-wait-for-element-state.spec.ts b/tests/page/elementhandle-wait-for-element-state.spec.ts index 1dc17b409b..e943d229d1 100644 --- a/tests/page/elementhandle-wait-for-element-state.spec.ts +++ b/tests/page/elementhandle-wait-for-element-state.spec.ts @@ -123,6 +123,8 @@ it('should wait for stable position', async ({ page, server, browserName, platfo button.style.transition = 'margin 10000ms linear 0s'; button.style.marginLeft = '20000px'; }); + // rafraf for Firefox to kick in the animation. + await page.evaluate(() => new Promise(f => requestAnimationFrame(() => requestAnimationFrame(f)))); let done = false; const promise = button.waitForElementState('stable').then(() => done = true); await giveItAChanceToResolve(page); diff --git a/tests/page/page-click-timeout-4.spec.ts b/tests/page/page-click-timeout-4.spec.ts index 0b167a6344..0ee7942eef 100644 --- a/tests/page/page-click-timeout-4.spec.ts +++ b/tests/page/page-click-timeout-4.spec.ts @@ -24,6 +24,8 @@ it('should timeout waiting for stable position', async ({ page, server }) => { button.style.transition = 'margin 5s linear 0s'; button.style.marginLeft = '200px'; }); + // rafraf for Firefox to kick in the animation. + await page.evaluate(() => new Promise(f => requestAnimationFrame(() => requestAnimationFrame(f)))); const error = await button.click({ timeout: 3000 }).catch(e => e); expect(error.message).toContain('elementHandle.click: Timeout 3000ms exceeded.'); expect(error.message).toContain('waiting for element to be visible, enabled and stable'); diff --git a/tests/page/page-click.spec.ts b/tests/page/page-click.spec.ts index 9059303ba5..d4047a45b6 100644 --- a/tests/page/page-click.spec.ts +++ b/tests/page/page-click.spec.ts @@ -455,6 +455,8 @@ it('should wait for stable position', async ({ page, server }) => { button.style.display = 'block'; document.body.style.margin = '0'; }); + // rafraf for Firefox to kick in the animation. + await page.evaluate(() => new Promise(f => requestAnimationFrame(() => requestAnimationFrame(f)))); await page.click('button'); expect(await page.evaluate(() => window['result'])).toBe('Clicked'); expect(await page.evaluate('pageX')).toBe(300);