Selenium For Beginners

Java

Use enums instead of multiple constants

Alex Siminiuc's avatar
Alex Siminiuc
May 12, 2023
∙ Paid
Share

The following test class has 3 test scripts that check if results can be filtered by different criteria (book, comic book, e-book):

public class WebTest {
   private WebDriver driver;

   private static final String KEYWORD = "java";

   private static final String BOOK_FILTER = "book";
   private static final String COMIC_BOOK_FILTER = "comicbook";
   private static final String E_BOOK_FILTER = "ebook";

   @BeforeMethod
   public void setUp() {
      WebDriverManager.chromedriver().setup();
      driver = new ChromeDriver();
      driver.manage().window().maximize();
   }

   @AfterMethod
   public void tearDown() {
      driver.quit();
   }

   @Test
   public void canFilterByBooksTest() {
      HomePage homePage = new HomePage(driver);
      homePage.open();

      Verify.verify(homePage.isDisplayed(), "home page is not displayed!");

      ResultsPage resultsPage = homePage.searchBy(KEYWORD);

      Verify.verify(resultsPage.isDisplayed(),
         "results page is not displayed!");

      Assert.assertFalse(resultsPage.getFilterState(BOOK_FILTER), 
         "book filter is not unchecked!");

      resultsPage.checkFilter(BOOK_FILTER);
   
      Assert.assertTrue(resultsPage.getFilterState(BOOK_FILTER), 
         "book filter is not checked!");

      resultsPage.unCheckFilter(BOOK_FILTER);

      Assert.assertFalse(resultsPage.getFilterState(BOOK_FILTER), 
         "book filter is not unchecked!");
   }

   @Test
   public void canFilterByComicBooksTest() {
      HomePage homePage = new HomePage(driver);
      homePage.open();

      Verify.verify(homePage.isDisplayed(), "home page is not displayed!");

      ResultsPage resultsPage = homePage.searchBy(KEYWORD);

      Verify.verify(resultsPage.isDisplayed(), 
         "results page is not displayed!");

      Assert.assertFalse(resultsPage.getFilterState(COMIC_BOOK_FILTER), 
         "comic book filter is not unchecked!");

      resultsPage.checkFilter(COMIC_BOOK_FILTER);

      Assert.assertTrue(resultsPage.getFilterState(COMIC_BOOK_FILTER), 
         "comic book filter is not checked!");

      resultsPage.unCheckFilter(COMIC_BOOK_FILTER);

      Assert.assertFalse(resultsPage.getFilterState(COMIC_BOOK_FILTER), 
         "comic book filter is not unchecked!");
   }

   @Test
   public void canFilterByEBooksTest() {
      HomePage homePage = new HomePage(driver);
      homePage.open();

      Verify.verify(homePage.isDisplayed(), "home page is not displayed!");

      ResultsPage resultsPage = homePage.searchBy(KEYWORD);
      Verify.verify(resultsPage.isDisplayed(), 
         "results page is not displayed!");

      Assert.assertFalse(resultsPage.getFilterState(E_BOOK_FILTER), 
         "ebook filter is not unchecked!");

      resultsPage.checkFilter(E_BOOK_FILTER);

      Assert.assertTrue(resultsPage.getFilterState(E_BOOK_FILTER), 
         "ebook filter is not checked!");

      resultsPage.unCheckFilter(E_BOOK_FILTER);

      Assert.assertFalse(resultsPage.getFilterState(E_BOOK_FILTER), 
         "ebook filter is not unchecked!");
   }
}

Keep reading with a 7-day free trial

Subscribe to Selenium For Beginners to keep reading this post and get 7 days of free access to the full post archives.

Already a paid subscriber? Sign in
© 2025 Alex Siminiuc
Privacy ∙ Terms ∙ Collection notice
Start your SubstackGet the app
Substack is the home for great culture