diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/GlobalSearch.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/GlobalSearch.spec.ts index a6abaf8185c..c1d3a6852bc 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/GlobalSearch.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Flow/GlobalSearch.spec.ts @@ -45,6 +45,10 @@ test('searching for longer description should work', async ({ page }) => { } ); + await page.waitForSelector('[data-testid="search-results"]', { + state: 'visible', + }); + await expect( page .getByTestId('search-results') diff --git a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/Tags.spec.ts b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/Tags.spec.ts index da93a961eea..91223cacbb8 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/Tags.spec.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/Tags.spec.ts @@ -369,9 +369,12 @@ test('Classification Page', async ({ page }) => { response.url().includes('/api/v1/feed/tasks/') && response.url().includes('/resolve') ); - await page.click( + + const acceptButton = page.locator( '.ant-btn-compact-first-item:has-text("Accept Suggestion")' ); + await acceptButton.waitFor({ state: 'visible' }); + await acceptButton.click(); await acceptSuggestion; await page.click('[data-testid="table"]'); diff --git a/openmetadata-ui/src/main/resources/ui/playwright/support/tag/ClassificationClass.ts b/openmetadata-ui/src/main/resources/ui/playwright/support/tag/ClassificationClass.ts index c23a14a1b03..42627ab4e27 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/support/tag/ClassificationClass.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/support/tag/ClassificationClass.ts @@ -43,8 +43,10 @@ export class ClassificationClass { } async visitPage(page: Page) { - const getTags = page.waitForResponse('/api/v1/tags*'); await sidebarClick(page, SidebarItem.TAGS); + + const getTags = page.waitForResponse('/api/v1/tags*'); + await page.waitForSelector('[data-testid="side-panel-classification"]'); await getTags; await page .locator(`[data-testid="side-panel-classification"]`) diff --git a/openmetadata-ui/src/main/resources/ui/playwright/support/tag/TagClass.ts b/openmetadata-ui/src/main/resources/ui/playwright/support/tag/TagClass.ts index d5e36b52134..60f420d29c9 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/support/tag/TagClass.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/support/tag/TagClass.ts @@ -69,6 +69,7 @@ export class TagClass { this.responseData.classification.name, this.responseData.classification.displayName ); + await page.getByTestId(this.data.name).waitFor({ state: 'visible' }); await page.getByTestId(this.data.name).click(); await page.waitForLoadState('networkidle'); } diff --git a/openmetadata-ui/src/main/resources/ui/playwright/support/user/UserClass.ts b/openmetadata-ui/src/main/resources/ui/playwright/support/user/UserClass.ts index 7f879b059a2..903d92a49ad 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/support/user/UserClass.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/support/user/UserClass.ts @@ -205,7 +205,9 @@ export class UserClass { await page.goto('/'); await page.waitForURL('**/signin'); await page.waitForLoadState('networkidle'); - await page.fill('input[id="email"]', userName); + const emailInput = page.locator('input[id="email"]'); + await emailInput.waitFor({ state: 'visible' }); + await emailInput.fill(userName); await page.locator('#email').press('Tab'); await page.fill('input[id="password"]', password); const loginRes = page.waitForResponse('/api/v1/users/login'); diff --git a/openmetadata-ui/src/main/resources/ui/playwright/utils/advancedSearch.ts b/openmetadata-ui/src/main/resources/ui/playwright/utils/advancedSearch.ts index 6e365042b23..c2e475644c9 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/utils/advancedSearch.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/utils/advancedSearch.ts @@ -220,7 +220,11 @@ export const selectOption = async ( state: 'visible', }); - await page.click(`.ant-select-dropdown:visible [title="${optionTitle}"]`); + const optionLocator = page + .locator(`.ant-select-dropdown:visible [title="${optionTitle}"]`) + .first(); + await optionLocator.waitFor({ state: 'visible' }); + await optionLocator.click(); }; export const fillRule = async ( diff --git a/openmetadata-ui/src/main/resources/ui/playwright/utils/sidebar.ts b/openmetadata-ui/src/main/resources/ui/playwright/utils/sidebar.ts index 2c7c6092aaf..da68e5be991 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/utils/sidebar.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/utils/sidebar.ts @@ -29,16 +29,20 @@ export const clickOnLogo = async (page: Page) => { export const sidebarClick = async (page: Page, id: string) => { const items = SIDEBAR_LIST_ITEMS[id as keyof typeof SIDEBAR_LIST_ITEMS]; if (items) { - await page.hover( - `[data-testid="left-sidebar"] [data-menu-id*="${items[0]}"]` - ); - await page.waitForSelector(`[data-testid="app-bar-item-${items[1]}"]`, { - state: 'visible', - }); + await page.hover('[data-testid="left-sidebar"]'); + await page.click(`[data-testid="${items[0]}"]`); - await page.click(`[data-testid="app-bar-item-${items[1]}"]`); + const targetElement = page + .locator(`[data-testid="app-bar-item-${items[1]}"]`) + .first(); + await targetElement.waitFor({ state: 'visible' }); + await targetElement.click(); } else { - await page.click(`[data-testid="app-bar-item-${id}"]`); + const targetElement = page + .locator(`[data-testid="app-bar-item-${id}"]`) + .first(); + await targetElement.waitFor({ state: 'visible' }); + await targetElement.click(); } await page.mouse.move(1280, 0); // Move mouse to top right corner diff --git a/openmetadata-ui/src/main/resources/ui/playwright/utils/tag.ts b/openmetadata-ui/src/main/resources/ui/playwright/utils/tag.ts index a96ffa36625..3306fa584b4 100644 --- a/openmetadata-ui/src/main/resources/ui/playwright/utils/tag.ts +++ b/openmetadata-ui/src/main/resources/ui/playwright/utils/tag.ts @@ -81,7 +81,7 @@ export const visitClassificationPage = async ( await fetchTags; await page.waitForLoadState('networkidle'); await page.waitForSelector( - '[data-testid="tags-container"] [data-testid="loader"]', + '[data-testid="tags-container"] .table-container [data-testid="loader"]', { state: 'detached' } ); };