diff --git a/playwright/e2e/atk_search/atk_search.spec.js b/playwright/e2e/atk_search/atk_search.spec.js index 72735a65ee31ecfc902042b2181e04d9b95623cb..7502b5b08cd5317d5f7f977ec8940abe611064c6 100644 --- a/playwright/e2e/atk_search/atk_search.spec.js +++ b/playwright/e2e/atk_search/atk_search.spec.js @@ -35,7 +35,7 @@ test.describe('Search tests.', () => { await page.goto(baseUrl); for (let item of searchData.simple) { - await page.getByLabel('Search Form').click(); + await openSearchForm(page); const keyInput = page.getByRole("searchbox", { name: "Search" }); await keyInput.fill(item.keyword); await keyInput.press("Enter"); @@ -95,7 +95,7 @@ test.describe('Search tests.', () => { test('(ATK-PW-1162) Search by a keyword: empty input @ATK-PW-1162 @search @content @empty', async ({ page }) => { await page.goto(baseUrl); - await page.getByLabel('Search Form').click(); + await openSearchForm(page); const searchInput = page.getByRole("searchbox", { name: "Search" }); await expect(searchInput).toHaveAttribute('placeholder', 'Search by keyword or phrase.'); }); @@ -115,6 +115,18 @@ test.describe('Search tests.', () => { await expect(page.getByText("Enter some keywords.")).toBeVisible(); }); + async function openSearchForm(page) { + // Handle "responsive design". If "Search form" isn't visible, + // have to click main menu button first. + + let searchForm = page.getByLabel('Search Form'); + await searchForm.waitFor(); + if (!(await searchForm.isVisible())) { + await page.getByLabel('Main Menu').click(); + } + await searchForm.click(); + } + async function checkResult(page, item) { const resultLocatorList = await page.locator('.search-result__title').all(); const resultList = [];