fix: add browser relaunch logic to Cucumber hooks
- Add error handling for browser context creation - Auto-relaunch browser if context creation fails - Add better error logging
This commit is contained in:
@@ -73,9 +73,31 @@ AfterAll(async function () {
|
||||
* Before each scenario: Create new page context
|
||||
*/
|
||||
Before(async function () {
|
||||
// Create new context and page
|
||||
world.context = await browser.newContext();
|
||||
world.page = await world.context.newPage();
|
||||
try {
|
||||
// Create new context and page
|
||||
world.context = await browser.newContext();
|
||||
world.page = await world.context.newPage();
|
||||
} catch (error) {
|
||||
console.error('❌ Failed to create new browser context:', error);
|
||||
console.log('🌍 Attempting to relaunch browser...');
|
||||
|
||||
// Try to relaunch browser
|
||||
try {
|
||||
await browser.close();
|
||||
} catch (e) {
|
||||
// Ignore close errors
|
||||
}
|
||||
|
||||
// Relaunch browser
|
||||
browser = await chromium.launch({
|
||||
headless: process.env.CI ? true : false,
|
||||
});
|
||||
|
||||
// Retry creating context
|
||||
world.context = await browser.newContext();
|
||||
world.page = await world.context.newPage();
|
||||
console.log('✅ Browser relaunched successfully');
|
||||
}
|
||||
|
||||
// Log console messages for debugging
|
||||
world.page.on('console', msg => {
|
||||
|
||||
Reference in New Issue
Block a user