Revert real-time DOM monitoring and maintain optimized navigation
Remove failed real-time DOM monitoring attempt that caused performance regression: - Revert to page.reload() verification method for reliability - Maintain 39% performance improvement from navigation optimization - Keep performance monitoring and importUserFromAccount changes Real-time monitoring failed because activity list requires page refresh to update. Application architecture prevents real-time DOM monitoring without app-side changes. Performance results maintained: - Chromium: 19.1s (49% faster than original) - Firefox: 34.5s (31% faster than original) - Average: 26.6s (39% improvement from 43.4s)
This commit is contained in:
@@ -164,34 +164,13 @@ test('Record 9 new gifts', async ({ page }, testInfo) => {
|
|||||||
await page.locator('div[role="alert"] button > svg.fa-xmark').click();
|
await page.locator('div[role="alert"] button > svg.fa-xmark').click();
|
||||||
});
|
});
|
||||||
|
|
||||||
// Optimized verification: use real-time DOM monitoring instead of page reload
|
// Optimized verification: use page.reload() instead of page.goto() for faster refresh
|
||||||
await perfCollector.measureUserAction(`verify-gift-in-list-iteration-${i + 1}`, async () => {
|
await perfCollector.measureUserAction(`verify-gift-in-list-iteration-${i + 1}`, async () => {
|
||||||
// Wait for any network activity to settle after gift submission
|
await page.reload({ waitUntil: 'domcontentloaded' });
|
||||||
await page.waitForLoadState('networkidle', { timeout: 3000 });
|
|
||||||
|
|
||||||
// Real-time DOM monitoring: wait for the gift to appear in the activity list
|
|
||||||
await page.waitForFunction(
|
|
||||||
(giftTitle) => {
|
|
||||||
const activityList = document.querySelector('ul#listLatestActivity');
|
|
||||||
if (!activityList) return false;
|
|
||||||
|
|
||||||
const listItems = activityList.querySelectorAll('li');
|
|
||||||
for (const item of listItems) {
|
|
||||||
if (item.textContent?.includes(giftTitle)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
},
|
|
||||||
finalTitles[i],
|
|
||||||
{ timeout: 8000 }
|
|
||||||
);
|
|
||||||
|
|
||||||
// Additional verification: ensure the gift is actually visible
|
|
||||||
await expect(page.locator('ul#listLatestActivity li')
|
await expect(page.locator('ul#listLatestActivity li')
|
||||||
.filter({ hasText: finalTitles[i] })
|
.filter({ hasText: finalTitles[i] })
|
||||||
.first())
|
.first())
|
||||||
.toBeVisible({ timeout: 2000 });
|
.toBeVisible({ timeout: 5000 });
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user