From f8f732fc9e47f3f9fde3002c3d6961e11e38d703 Mon Sep 17 00:00:00 2001 From: DatDang Date: Mon, 15 Jul 2024 17:05:01 +0700 Subject: [PATCH] WIP Add playwright POC --- tmail_selenium/pom.xml | 6 +++ .../oidc/login/PlaywrightLoginTest.java | 51 +++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 tmail_selenium/src/test/java/com/linagora/tmail/preprod/oidc/login/PlaywrightLoginTest.java diff --git a/tmail_selenium/pom.xml b/tmail_selenium/pom.xml index a6f83cbad5..5c45aaddf1 100644 --- a/tmail_selenium/pom.xml +++ b/tmail_selenium/pom.xml @@ -32,6 +32,12 @@ selenium-java 4.22.0 + + + com.microsoft.playwright + playwright + 1.45.0 + diff --git a/tmail_selenium/src/test/java/com/linagora/tmail/preprod/oidc/login/PlaywrightLoginTest.java b/tmail_selenium/src/test/java/com/linagora/tmail/preprod/oidc/login/PlaywrightLoginTest.java new file mode 100644 index 0000000000..67a9a72fed --- /dev/null +++ b/tmail_selenium/src/test/java/com/linagora/tmail/preprod/oidc/login/PlaywrightLoginTest.java @@ -0,0 +1,51 @@ +package com.linagora.tmail.preprod.oidc.login; + +import static org.junit.Assert.assertTrue; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +import com.microsoft.playwright.Browser; +import com.microsoft.playwright.BrowserContext; +import com.microsoft.playwright.BrowserType; +import com.microsoft.playwright.Page; +import com.microsoft.playwright.Page.WaitForSelectorOptions; +import com.microsoft.playwright.Playwright; +import com.microsoft.playwright.options.WaitForSelectorState; + +public class PlaywrightLoginTest { + Playwright playwright; + Browser browser; + BrowserContext context; + Page page; + + @Before + public void setup() { + playwright = Playwright.create(); + browser = playwright.chromium().launch(new BrowserType.LaunchOptions().setHeadless(false)); + context = browser.newContext(); + page = context.newPage(); + } + + @After + public void tearDown() { + context.close(); + playwright.close(); + } + + @Test + public void login() { + page.navigate("http://localhost:2023/"); + page.locator("#username").fill("firstname100.surname100"); + page.locator("#password").fill("secret100"); + page.locator("#kc-login").click(); + page.locator("flt-semantics[aria-label='Sent']").waitFor(); + page.locator("flt-semantics[aria-label='Sent']").click(); + page.waitForTimeout(1000); + page.waitForSelector( + "flt-semantics[aria-label*='firstname100.surname100']", + new WaitForSelectorOptions().setState(WaitForSelectorState.VISIBLE)); + assertTrue(page.locator("flt-semantics[aria-label*='firstname100.surname100']").all().size() > 1); + } +}