Selenium For Beginners

Share this post

User's avatar
Selenium For Beginners
Use enums instead of multiple constants
Java

Use enums instead of multiple constants

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

Share this post

User's avatar
Selenium For Beginners
Use enums instead of multiple constants
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 writingGet the app
Substack is the home for great culture

Share