diff --git a/selenium-junit-testng/pom.xml b/selenium-junit-testng/pom.xml
index bf5a082fba..c6461816af 100644
--- a/selenium-junit-testng/pom.xml
+++ b/selenium-junit-testng/pom.xml
@@ -37,12 +37,12 @@
junit
junit
- 4.8.1
+ 4.12
org.testng
testng
- 6.9.10
+ 6.9.13.6
\ No newline at end of file
diff --git a/selenium-junit-testng/src/main/java/com/baeldung/selenium/SeleniumExample.java b/selenium-junit-testng/src/main/java/com/baeldung/selenium/SeleniumExample.java
index d8b248df81..7661354aab 100644
--- a/selenium-junit-testng/src/main/java/com/baeldung/selenium/SeleniumExample.java
+++ b/selenium-junit-testng/src/main/java/com/baeldung/selenium/SeleniumExample.java
@@ -1,15 +1,22 @@
package main.java.com.baeldung.selenium;
+import java.util.List;
+import java.util.concurrent.TimeUnit;
+
+import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
public class SeleniumExample {
private WebDriver webDriver;
private String url = "http://www.baeldung.com/";
-
+
public SeleniumExample() {
webDriver = new FirefoxDriver();
+ webDriver.manage().window().maximize();
+ webDriver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
webDriver.get(url);
}
@@ -21,4 +28,34 @@ public class SeleniumExample {
return webDriver.getTitle();
}
+ public void getAboutBaeldungPage() {
+ closeOverlay();
+ clickAboutLink();
+ clickAboutUsLink();
+ }
+
+ private void closeOverlay() {
+ List webElementList = webDriver.findElements(By.tagName("a"));
+ if (webElementList != null && !webElementList.isEmpty()) {
+ for (WebElement webElement : webElementList) {
+ if (webElement.getAttribute("title").equalsIgnoreCase("Close")) {
+ webElement.click();
+ }
+ }
+ }
+ }
+
+ private void clickAboutLink() {
+ webDriver.findElement(By.partialLinkText("About")).click();
+ }
+
+ private void clickAboutUsLink() {
+ webDriver.findElement(By.partialLinkText("About Baeldung.")).click();
+ }
+
+ public boolean isAuthorInformationAvailable() {
+ return webDriver
+ .findElement(By.xpath("//*[contains(text(), 'Eugen – an engineer')]"))
+ .isDisplayed();
+ }
}
diff --git a/selenium-junit-testng/src/test/java/com/baeldung/selenium/junit/TestSeleniumWithJUnit.java b/selenium-junit-testng/src/test/java/com/baeldung/selenium/junit/TestSeleniumWithJUnit.java
index dabb1e1988..85c20f62a5 100644
--- a/selenium-junit-testng/src/test/java/com/baeldung/selenium/junit/TestSeleniumWithJUnit.java
+++ b/selenium-junit-testng/src/test/java/com/baeldung/selenium/junit/TestSeleniumWithJUnit.java
@@ -1,31 +1,41 @@
package test.java.com.baeldung.selenium.junit;
import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNotNull;
+import static org.testng.Assert.assertTrue;
import main.java.com.baeldung.selenium.SeleniumExample;
-import org.junit.After;
-import org.junit.Before;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
import org.junit.Test;
public class TestSeleniumWithJUnit {
- private SeleniumExample seleniumExample;
- private String expectedTitle = "Baeldung | Java, Spring and Web Development tutorials";
+ private static SeleniumExample seleniumExample;
+ private String expecteTilteAboutBaeldungPage = "About Baeldung | Baeldung";
- @Before
- public void setUp() {
+ @BeforeClass
+ public static void setUp() {
seleniumExample = new SeleniumExample();
}
- @After
- public void tearDown() {
+ @AfterClass
+ public static void tearDown() {
seleniumExample.closeWindow();
}
@Test
- public void whenPageIsLoaded_thenTitleIsAsPerExpectation() {
- String actualTitle = seleniumExample.getTitle();
- assertNotNull(actualTitle);
- assertEquals(actualTitle, expectedTitle);
+ public void whenAboutBaeldungIsLoaded_thenAboutEugenIsMentionedOnPage() {
+ try {
+ seleniumExample.getAboutBaeldungPage();
+ String actualTitle = seleniumExample.getTitle();
+ assertNotNull(actualTitle);
+ assertEquals(actualTitle, expecteTilteAboutBaeldungPage);
+ assertTrue(seleniumExample.isAuthorInformationAvailable());
+ } catch (Exception exception) {
+ exception.printStackTrace();
+ seleniumExample.closeWindow();
+ }
}
+
}
diff --git a/selenium-junit-testng/src/test/java/com/baeldung/selenium/testng/TestSeleniumWithTestNG.java b/selenium-junit-testng/src/test/java/com/baeldung/selenium/testng/TestSeleniumWithTestNG.java
index 78ef8b8dfb..40b0424820 100644
--- a/selenium-junit-testng/src/test/java/com/baeldung/selenium/testng/TestSeleniumWithTestNG.java
+++ b/selenium-junit-testng/src/test/java/com/baeldung/selenium/testng/TestSeleniumWithTestNG.java
@@ -1,6 +1,8 @@
package test.java.com.baeldung.selenium.testng;
import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNotNull;
+import static org.testng.Assert.assertTrue;
import main.java.com.baeldung.selenium.SeleniumExample;
import org.testng.annotations.AfterSuite;
@@ -10,7 +12,7 @@ import org.testng.annotations.Test;
public class TestSeleniumWithTestNG {
private SeleniumExample seleniumExample;
- private String expectedTitle = "Baeldung | Java, Spring and Web Development tutorials";
+ private String expecteTilteAboutBaeldungPage = "About Baeldung | Baeldung";
@BeforeSuite
public void setUp() {
@@ -23,9 +25,16 @@ public class TestSeleniumWithTestNG {
}
@Test
- public void whenPageIsLoaded_thenTitleIsAsPerExpectation() {
- String actualTitle = seleniumExample.getTitle();
- assertNotNull(actualTitle);
- assertEquals(actualTitle, expectedTitle);
+ public void whenAboutBaeldungIsLoaded_thenAboutEugenIsMentionedOnPage() {
+ try {
+ seleniumExample.getAboutBaeldungPage();
+ String actualTitle = seleniumExample.getTitle();
+ assertNotNull(actualTitle);
+ assertEquals(actualTitle, expecteTilteAboutBaeldungPage);
+ assertTrue(seleniumExample.isAuthorInformationAvailable());
+ } catch (Exception exception) {
+ exception.printStackTrace();
+ seleniumExample.closeWindow();
+ }
}
}