From 003e84e6585f54323606608bca7369a988ff062f Mon Sep 17 00:00:00 2001 From: Ilya Lyaukin <kzerby@gmail.com> Date: Tue, 19 Nov 2024 12:05:27 -0600 Subject: [PATCH] Handle responsive design in the search test. --- playwright/e2e/atk_search/atk_search.spec.js | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/playwright/e2e/atk_search/atk_search.spec.js b/playwright/e2e/atk_search/atk_search.spec.js index 72735a6..7502b5b 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 = []; -- GitLab