Bird
Raised Fist0
Selenium Javatesting~20 mins

Action methods per page in Selenium Java - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Action Methods Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
2:00remaining
Purpose of Action Methods in Page Object Model

In Selenium testing using the Page Object Model, what is the main purpose of action methods defined in a page class?

ATo initialize the WebDriver instance for the test
BTo store the URLs of different pages in the application
CTo perform user interactions like clicks and typing on web elements of that page
DTo generate test reports after test execution
Attempts:
2 left
💡 Hint

Think about what actions a user can do on a web page and how tests simulate those.

❓ Predict Output
intermediate
2:00remaining
Output of Action Method Execution

Given the following Java Selenium page class snippet, what will be the output when loginPage.login("user", "pass") is called?

Selenium Java
public class LoginPage {
    WebDriver driver;
    
    public LoginPage(WebDriver driver) {
        this.driver = driver;
    }

    public void login(String username, String password) {
        System.out.println("Typing username: " + username);
        System.out.println("Typing password: " + password);
        System.out.println("Clicking login button");
    }
}
A
Typing username: user
Typing password: pass
Clicking login button
B
Typing username: pass
Typing password: user
Clicking login button
C
Clicking login button
Typing username: user
Typing password: pass
DNo output because login method does not return anything
Attempts:
2 left
💡 Hint

Look at the order of the print statements inside the login method.

❓ locator
advanced
2:00remaining
Best Locator Strategy for Action Methods

Which locator strategy is best practice to use inside action methods in a page class for stable and maintainable tests?

AUsing IDs or unique attributes that rarely change
BUsing absolute XPath expressions that include full path from root element
CUsing CSS selectors with nth-child indexes for dynamic elements
DUsing link text for buttons and links only
Attempts:
2 left
💡 Hint

Think about what locator is least likely to break when the page layout changes.

❓ assertion
advanced
2:00remaining
Correct Assertion After Action Method

After calling an action method that submits a form, which assertion correctly verifies the success message text?

Selenium Java
String expectedMessage = "Form submitted successfully!";
String actualMessage = driver.findElement(By.id("success-msg")).getText();
AassertFalse(actualMessage.isEmpty());
BassertTrue(actualMessage.contains("Error"));
CassertNull(actualMessage);
DassertEquals(expectedMessage, actualMessage);
Attempts:
2 left
💡 Hint

Check which assertion compares the expected and actual text exactly.

🔧 Debug
expert
2:00remaining
Debugging Action Method Failure

An action method clickSubmit() in a page class throws ElementNotInteractableException during test runs. What is the most likely cause?

Selenium Java
public void clickSubmit() {
    WebElement submitBtn = driver.findElement(By.id("submit"));
    submitBtn.click();
}
AThe locator By.id("submit") is incorrect and finds no element
BThe submit button is hidden or disabled on the page when click is attempted
CThe WebDriver instance is not initialized before calling clickSubmit()
DThe click() method is deprecated and should not be used
Attempts:
2 left
💡 Hint

ElementNotInteractableException means the element exists but cannot be clicked.

Practice

(1/5)
1. What is the main purpose of action methods in a Selenium page object?
easy
A. To represent user actions like clicking or typing on the page
B. To store test data for validation
C. To configure browser settings
D. To generate test reports automatically

Solution

  1. Step 1: Understand the role of action methods

    Action methods are designed to perform user interactions such as clicking buttons or entering text.
  2. Step 2: Differentiate from other page object responsibilities

    Storing data, configuring browsers, or generating reports are not the role of action methods.
  3. Final Answer:

    To represent user actions like clicking or typing on the page -> Option A
  4. Quick Check:

    Action methods = user actions [OK]
Hint: Action methods do what a user does on the page [OK]
Common Mistakes:
  • Confusing action methods with data storage
  • Thinking action methods configure the browser
  • Assuming action methods generate reports
2. Which of the following is the correct way to define an action method that clicks a button using Selenium Java?
easy
A. public void clickButton() { driver.findElement(By.id("btn")).getText(); }
B. public void clickButton() { driver.findElement(By.id("btn")).click(); }
C. public void clickButton() { driver.findElement(By.id("btn")).sendKeys(); }
D. public void clickButton() { driver.findElement(By.id("btn")).clear(); }

Solution

  1. Step 1: Identify the correct Selenium method for clicking

    The method click() performs a click action on the element.
  2. Step 2: Check the other methods

    sendKeys() types text, getText() reads text, and clear() clears input fields.
  3. Final Answer:

    public void clickButton() { driver.findElement(By.id("btn")).click(); } -> Option B
  4. Quick Check:

    Click action uses click() method [OK]
Hint: Click uses click(), not sendKeys() or getText() [OK]
Common Mistakes:
  • Using sendKeys() instead of click() to click
  • Calling getText() which only reads text
  • Using clear() which clears input fields
3. Given the following action method in a page object:
public void enterUsername(String name) {
    driver.findElement(By.name("username")).sendKeys(name);
}

What will happen when enterUsername("testUser") is called?
medium
A. The text "testUser" will be typed into the username input field
B. The username input field will be cleared
C. An error will occur because sendKeys requires no arguments
D. The username input field will be clicked but not typed

Solution

  1. Step 1: Understand sendKeys() usage

    The sendKeys() method types the given string into the located input field.
  2. Step 2: Analyze the method call

    Calling enterUsername("testUser") passes "testUser" to sendKeys(), so it types this text.
  3. Final Answer:

    The text "testUser" will be typed into the username input field -> Option A
  4. Quick Check:

    sendKeys("text") types text [OK]
Hint: sendKeys(text) types text into input fields [OK]
Common Mistakes:
  • Thinking sendKeys() clears the field
  • Believing sendKeys() takes no arguments
  • Confusing click() with sendKeys()
4. Consider this action method:
public void submitForm() {
    driver.findElement(By.id("submitBtn")).click();
    driver.findElement(By.id("submitBtn")).click();
}

What is the issue with this method?
medium
A. It does not locate the submit button correctly
B. It uses an invalid locator syntax
C. It will cause a compilation error due to duplicate lines
D. It clicks the submit button twice unnecessarily

Solution

  1. Step 1: Review the method actions

    The method calls click() on the same button twice in a row.
  2. Step 2: Understand the impact

    Clicking twice may cause unexpected behavior or duplicate submissions.
  3. Final Answer:

    It clicks the submit button twice unnecessarily -> Option D
  4. Quick Check:

    Duplicate clicks cause redundant actions [OK]
Hint: Avoid repeating click() on same element twice [OK]
Common Mistakes:
  • Thinking duplicate lines cause compile errors
  • Assuming locator syntax is wrong
  • Believing the button is not found
5. You want to create an action method that selects a checkbox only if it is not already selected. Which of the following is the best implementation?
hard
A. public void selectCheckbox() { WebElement checkbox = driver.findElement(By.id("agree")); checkbox.isSelected(); }
B. public void selectCheckbox() { driver.findElement(By.id("agree")).click(); }
C. public void selectCheckbox() { WebElement checkbox = driver.findElement(By.id("agree")); if (!checkbox.isSelected()) { checkbox.click(); } }
D. public void selectCheckbox() { WebElement checkbox = driver.findElement(By.id("agree")); checkbox.clear(); }

Solution

  1. Step 1: Check if checkbox is already selected

    Use isSelected() to verify checkbox state before clicking.
  2. Step 2: Click only if not selected

    Clicking only when unchecked prevents unchecking it accidentally.
  3. Final Answer:

    public void selectCheckbox() { WebElement checkbox = driver.findElement(By.id("agree")); if (!checkbox.isSelected()) { checkbox.click(); } } -> Option C
  4. Quick Check:

    Check isSelected() before click to avoid toggling [OK]
Hint: Click checkbox only if not selected using isSelected() [OK]
Common Mistakes:
  • Clicking checkbox without checking state
  • Calling isSelected() without action
  • Using clear() on checkbox which is invalid
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