How can I locate the specific button by using Xpath in automating testing?

162    Asked by CelinaLagunas in QA Testing , Asked on May 21, 2024

I am currently tasked with automating a test for a particular web based application. One critical test involves the verification if the presence of a specific button which can only appear after the users log in. The button has a very unique identifiera in its xlwthy. How can I use the Xpath for the purpose of locating this button reliably? 

Answered by Ranjana Admin

In the context of selenium, you can locate the button by using the Xpath in automation testing by using these steps which are given below:-

Inspect element

Try to use your browsers developer tools for the purpose of inspecting the button elements and identify it’s Xpath. This Xpath should be very unique in nature.

Xpath expression

You can construct an Xpath expression which accurately identify the button based on its attributes such as ID, class or other identifying the properties.

Cost implementation

Try to incorporate the Xpath into your automation testing code by using a testing framework like Selenium.

Here is the Python coding structure given for above points:-
From selenium import webdriver
From selenium.webdriver.common.by import By
From selenium.webdriver.chrome.service import Service
From selenium.webdriver.chrome.options import Options
# Setup Chrome driver options
Chrome_options = Options()
Chrome_options.add_argument(“—start-maximized”)
# Initialize WebDriver (assumes you have the ChromeDriver in your PATH)
Driver_path = “/path/to/chromedriver”
Service = Service(driver_path)

Driver = webdriver.Chrome(service=service, options=chrome_options)

Try:

    # Navigate to the web application’s login page
    Driver.get(http://example.com/login)
    # Perform login steps (these would vary based on the web application)
    Username_field = driver.find_element(By.ID, “username”)
    Password_field = driver.find_element(By.ID, “password”)
    Login_button = driver.find_element(By.ID, “login”)
    Username_field.send_keys(“your_username”)
    Password_field.send_keys(“your_password”)
    Login_button.click()
    # Wait for the button to be present (use WebDriverWait if needed)
    Driver.implicitly_wait(10) # Implicit wait example, consider WebDriverWait for better handling
    # Locate the button using XPath
    Button_xpath = “//button[@id=’unique_button_id’]” # Replace with the actual XPath
    Button_element = driver.find_element(By.XPATH, button_xpath)
    # Verify if the button is displayed
    If button_element.is_displayed():
        Print(“Button is present and displayed.”)
    Else:
        Print(“Button is present but not displayed.”)
Except Exception as e:
    Print(f”An error occurred: {e}”)

Finally:

    # Close the browser
    Driver.quit()

Here is the java based coding structure given for above points:-

Import org.openqa.selenium.By;
Import org.openqa.selenium.WebDriver;
Import org.openqa.selenium.WebElement;
Import org.openqa.selenium.chrome.ChromeDriver;
Import org.openqa.selenium.chrome.ChromeOptions;
Import org.openqa.selenium.support.ui.WebDriverWait;
Import org.openqa.selenium.support.ui.ExpectedConditions;
Public class LocateButtonUsingXPath {
    Public static void main(String[] args) {
        // Set the path to your chromedriver executable
        System.setProperty(“webdriver.chrome.driver”, “/path/to/chromedriver”);
        // Setup Chrome options
        ChromeOptions options = new ChromeOptions();
        Options.addArguments(“—start-maximized”);
        // Initialize WebDriver
        WebDriver driver = new ChromeDriver(options);
        Try {
            // Navigate to the web application’s login page
            Driver.get(http://example.com/login);
            // Perform login steps (these would vary based on the web application)
            WebElement usernameField = driver.findElement(By.id(“username”));
            WebElement passwordField = driver.findElement(By.id(“password”));
            WebElement loginButton = driver.findElement(By.id(“login”));
            usernameField.sendKeys(“your_username”);
            passwordField.sendKeys(“your_password”);
            loginButton.click();
            // Wait for the button to be present (using WebDriverWait)
            WebDriverWait wait = new WebDriverWait(driver, 10);
            String buttonXPath = “//button[@id=’unique_button_id’]”; // Replace with the actual XPath
            WebElement buttonElement = wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath(buttonXPath)));
            // Verify if the button is displayed
            If (buttonElement.isDisplayed()) {
                System.out.println(“Button is present and displayed.”);
            } else {
                System.out.println(“Button is present but not displayed.”);
            }
        } catch (Exception e) {
            System.out.println(“An error occurred: “ + e.getMessage());
        } finally {
            // Close the browser
            Driver.quit();
        }
    }
}


Your Answer

Interviews

Parent Categories