From 797fa4b66f7605ea1a36311a0dafb5de8adafffd Mon Sep 17 00:00:00 2001 From: Guillem Hernandez Sola Date: Tue, 21 Apr 2026 13:29:41 +0200 Subject: [PATCH] Added hovers improved --- .../testng/webdriver/HoversImprovedTest.java | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/test/java/com/agile611/testng/webdriver/HoversImprovedTest.java diff --git a/src/test/java/com/agile611/testng/webdriver/HoversImprovedTest.java b/src/test/java/com/agile611/testng/webdriver/HoversImprovedTest.java new file mode 100644 index 0000000..dfd3a63 --- /dev/null +++ b/src/test/java/com/agile611/testng/webdriver/HoversImprovedTest.java @@ -0,0 +1,34 @@ +package com.agile611.testng.webdriver; + +import java.time.Duration; +import java.util.List; + +import org.openqa.selenium.By; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.interactions.Actions; +import org.openqa.selenium.support.ui.ExpectedConditions; +import org.openqa.selenium.support.ui.WebDriverWait; +import static org.testng.Assert.assertTrue; +import org.testng.annotations.Test; + +public class HoversImprovedTest extends BaseTest { + + @Test + public void hoversTest() throws InterruptedException { + driver.get("http://the-internet.herokuapp.com/hovers"); + // Find and hover over desired element + List avatars = driver.findElements(By.xpath("//*[@id=\'content\']/div/div")); + + for(int i= 1; i <= avatars.size(); i++){ + WebElement avatar = driver.findElement(By.xpath("//*[@id=\'content\']/div/div["+i+"]/img")); + Actions builder = new Actions(driver); + builder.moveToElement(avatar).build().perform(); + // Wait until the hover appears + WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(5)); + wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id=\'content\']/div/div["+i+"]/div/h5"))); + // Assert that the hover displayed + assertTrue(driver.findElement(By.xpath("//*[@id=\'content\']/div/div["+i+"]/div/h5")).isDisplayed()); + assertTrue(driver.findElement(By.xpath("//*[@id=\'content\']/div/div["+i+"]/div/h5")).getText().contains("name: user"+i)); + } + } +}