Bird
Raised Fist0
Selenium Javatesting~5 mins

Page class design in Selenium Java - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the main purpose of a Page Class in Selenium?
A Page Class represents a web page in the application. It contains locators and methods to interact with page elements, making tests easier to read and maintain.
Click to reveal answer
beginner
Why should locators be private in a Page Class?
Locators are private to hide the details of how elements are found. This protects the test code from changes in the page structure and encourages using methods to interact with elements.
Click to reveal answer
beginner
What is a good practice for naming methods in a Page Class?
Methods should be named clearly to describe the action, like 'clickLoginButton' or 'enterUsername'. This makes test steps easy to understand, like reading a story.
Click to reveal answer
intermediate
How does the Page Object Model improve test maintenance?
By separating page details from test logic, changes in the UI only require updates in the Page Class, not in every test. This saves time and reduces errors.
Click to reveal answer
intermediate
What should a Page Class NOT contain?
A Page Class should not contain assertions or test logic. Its job is only to interact with the page. Assertions belong in the test code to keep responsibilities clear.
Click to reveal answer
What does a Page Class typically contain?
ALocators and methods to interact with page elements
BTest assertions and validations
CDatabase connection code
DUser interface design code
Why is it important to keep locators private in a Page Class?
ATo store user credentials securely
BTo make the code run faster
CTo allow tests to change locators easily
DTo prevent direct access and encourage using methods
Which of the following is a good method name in a Page Class?
AtestLogin
Bbutton1
CclickSubmitButton
DdoIt
Where should assertions be placed when using Page Classes?
AInside the Page Class methods
BIn the test code, not in the Page Class
CIn the locators section
DIn the browser settings
How does the Page Object Model help when the UI changes?
AOnly the Page Class needs updating, not all tests
BAll tests must be rewritten
CIt automatically updates the UI
DIt prevents UI changes
Explain the role and structure of a Page Class in Selenium testing.
Think about how a Page Class acts like a helper for tests.
You got /4 concepts.
    Describe why keeping locators private and using methods in a Page Class improves test maintenance.
    Consider how hiding details helps when the page changes.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of a page class in Selenium Java?
      easy
      A. To handle API requests
      B. To write test assertions directly
      C. To group web page elements and actions in one place
      D. To manage database connections

      Solution

      1. Step 1: Understand the role of page classes

        Page classes organize locators and actions related to a specific web page.
      2. Step 2: Identify the main purpose

        This organization improves code readability and reuse by keeping page details in one place.
      3. Final Answer:

        To group web page elements and actions in one place -> Option C
      4. Quick Check:

        Page class purpose = Group elements and actions [OK]
      Hint: Page classes group elements and actions per page [OK]
      Common Mistakes:
      • Confusing page classes with test classes
      • Using page classes for database or API logic
      • Writing assertions inside page classes
      2. Which of the following is the correct way to declare a locator in a Selenium page class using Java?
      easy
      A. public void submitButton = driver.findElement(By.id("submit"));
      B. public String submitButton = "submit";
      C. private WebElement submitButton = driver.findElement(By.id("submit"));
      D. private By submitButton = By.id("submit");

      Solution

      1. Step 1: Recall best practice for locators

        Locators should be stored as By objects, not WebElement, to delay element lookup.
      2. Step 2: Check each option

        private By submitButton = By.id("submit"); correctly declares a private By locator with By.id("submit").
      3. Final Answer:

        private By submitButton = By.id("submit"); -> Option D
      4. Quick Check:

        Locators = By objects [OK]
      Hint: Use By for locators, not WebElement directly [OK]
      Common Mistakes:
      • Declaring locators as WebElement fields
      • Using public visibility for locators
      • Assigning void type to variables
      3. Given the following page class snippet, what will loginPage.getTitle() return if the page title is "Welcome Page"?
      public class LoginPage {
        private WebDriver driver;
        public LoginPage(WebDriver driver) {
          this.driver = driver;
        }
        public String getTitle() {
          return driver.getTitle();
        }
      }
      medium
      A. "Welcome Page"
      B. "Login Page"
      C. null
      D. Throws NullPointerException

      Solution

      1. Step 1: Understand getTitle() method

        The method calls driver.getTitle(), which returns the current page title.
      2. Step 2: Match with given page title

        The page title is "Welcome Page", so getTitle() returns this string.
      3. Final Answer:

        "Welcome Page" -> Option A
      4. Quick Check:

        driver.getTitle() = "Welcome Page" [OK]
      Hint: driver.getTitle() returns current page title string [OK]
      Common Mistakes:
      • Assuming getTitle() returns page class name
      • Expecting null if not set explicitly
      • Confusing with element text retrieval
      4. Identify the error in this page class method:
      public void clickLogin() {
        WebElement loginBtn = driver.findElement(By.id("login"));
        loginBtn.click();
      }
      medium
      A. No error, method is correct
      B. Should store locator as a By field, not find element inside method
      C. Missing exception handling for element not found
      D. Method should return WebElement instead of void

      Solution

      1. Step 1: Review locator usage best practice

        Locators should be stored as By fields in the page class, not found inside methods.
      2. Step 2: Identify the problem

        Finding element inside method reduces reuse and violates page class design principles.
      3. Final Answer:

        Should store locator as a By field, not find element inside method -> Option B
      4. Quick Check:

        Locators as By fields = best practice [OK]
      Hint: Keep locators as fields, find elements in methods [OK]
      Common Mistakes:
      • Finding elements repeatedly inside methods
      • Ignoring locator reuse
      • Assuming exception handling is mandatory here
      5. You want to design a page class for a login page with username, password fields, and a login button. Which design approach is best to follow?
      hard
      A. Store locators as private By fields; create public methods to enter username, enter password, and click login
      B. Store WebElement fields publicly and access them directly in tests
      C. Write all test steps inside the page class constructor
      D. Use static methods only without storing any locators

      Solution

      1. Step 1: Recall page class design principles

        Locators should be private By fields; actions should be public methods for reuse and encapsulation.
      2. Step 2: Evaluate options

        Store locators as private By fields; create public methods to enter username, enter password, and click login follows best practice by separating locators and actions clearly.
      3. Final Answer:

        Store locators as private By fields; create public methods to enter username, enter password, and click login -> Option A
      4. Quick Check:

        Private locators + public methods = best design [OK]
      Hint: Private locators + public action methods = good page class [OK]
      Common Mistakes:
      • Making locators public and exposing WebElements
      • Putting test logic in constructors
      • Using static methods without instance context
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard