From 09623d19a7beba06bf4d8dffef2534738e7d8b1d Mon Sep 17 00:00:00 2001 From: Guillem Hernandez Sola Date: Wed, 17 Jun 2026 10:36:39 +0200 Subject: [PATCH] Models POM --- .../testng/webdriver/pages/BasePage.java | 16 ++++++++++++++++ .../testng/webdriver/pages/ResultsPage.java | 4 ++-- .../testng/webdriver/pages/SearchPage.java | 5 ++--- 3 files changed, 20 insertions(+), 5 deletions(-) create mode 100644 src/test/java/com/agile611/testng/webdriver/pages/BasePage.java diff --git a/src/test/java/com/agile611/testng/webdriver/pages/BasePage.java b/src/test/java/com/agile611/testng/webdriver/pages/BasePage.java new file mode 100644 index 0000000..dbb53c9 --- /dev/null +++ b/src/test/java/com/agile611/testng/webdriver/pages/BasePage.java @@ -0,0 +1,16 @@ +package com.agile611.testng.webdriver.pages; + +import java.time.Duration; + +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.ui.ExpectedConditions; +import org.openqa.selenium.support.ui.WebDriverWait; + + +public class BasePage { + public void waitPageToLoad(WebDriver driver, long secondsTimeout, WebElement webElement){ + WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(secondsTimeout)); + wait.until(ExpectedConditions.elementToBeClickable(webElement)); + } +} \ No newline at end of file diff --git a/src/test/java/com/agile611/testng/webdriver/pages/ResultsPage.java b/src/test/java/com/agile611/testng/webdriver/pages/ResultsPage.java index d4335bc..ed627fc 100644 --- a/src/test/java/com/agile611/testng/webdriver/pages/ResultsPage.java +++ b/src/test/java/com/agile611/testng/webdriver/pages/ResultsPage.java @@ -5,16 +5,16 @@ import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.PageFactory; -public class ResultsPage { +public class ResultsPage extends BasePage { private WebDriver driver; @FindBy(className = "react-results--main") public WebElement resultsList; - public ResultsPage(WebDriver driver) { PageFactory.initElements(driver, this); + waitPageToLoad(driver, 10, resultsList); } public boolean isResultsPagePresent() { diff --git a/src/test/java/com/agile611/testng/webdriver/pages/SearchPage.java b/src/test/java/com/agile611/testng/webdriver/pages/SearchPage.java index 383daa0..9a91d16 100644 --- a/src/test/java/com/agile611/testng/webdriver/pages/SearchPage.java +++ b/src/test/java/com/agile611/testng/webdriver/pages/SearchPage.java @@ -5,19 +5,18 @@ import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.PageFactory; -public class SearchPage { +public class SearchPage extends BasePage { private WebDriver driver; @FindBy(id = "searchbox_input") public WebElement searchBox; - public SearchPage(WebDriver driver) { PageFactory.initElements(driver, this); driver.get("https://duckduckgo.com/"); } - public void searchKeyword(String keyword) { + waitPageToLoad(driver, 10, searchBox); searchBox.clear(); searchBox.sendKeys(keyword); searchBox.submit();