QA Graphic

Pytest and Selenium: Finding All Anchor Elements

Useful Tips and Trick with Elements

When performing web automation tests, a common task is to interact with or verify links on a webpage. Using Pytest with Selenium makes this process straightforward. This post will walk you through a simple way to find all anchor elements (<a> tags) on a page.

The Basics of Finding Elements

Selenium provides various methods to locate elements on a webpage. One of the most fundamental is find_elements, which allows you to retrieve a list of all elements matching a specified locator strategy. To find anchor tags, we use By.TAG_NAME.

Sample Code for Pytest

Here's a simple Pytest example demonstrating how to find all link elements on a page. We assume you have a Selenium WebDriver instance (driver) already set up.


from selenium import webdriver
from selenium.webdriver.common.by import By
import pytest
def test_find_all_links(driver):
    # Navigate to a sample page (replace with your URL)
    driver.get("https://www.example.com")
    # Find all link elements
    links = driver.find_elements(By.TAG_NAME, "a")
    # You can then iterate through the links or perform assertions
    print(f"Found {len(links)} anchor elements.")
    for link in links:
        if link.text: # Print link text if available
            print(f"Link Text: {link.text}, URL: {link.get_attribute('href')}")
        else: # If no text, just print the URL
            print(f"URL: {link.get_attribute('href')}")
    # Example assertion: check if at least one link exists
    assert len(links) > 0, "No anchor elements found on the page."
        

Explanation

  • driver.get("https://www.example.com"): This line navigates your WebDriver instance to the specified URL. Remember to replace "https://www.example.com" with the actual URL of the page you are testing.
  • links = driver.find_elements(By.TAG_NAME, "a"): This is the core of the operation.
    • driver.find_elements: This method returns a list of web elements. If no elements are found, it returns an empty list.
    • By.TAG_NAME: This is the locator strategy, indicating that we want to find elements by their HTML tag name.
    • "a": This is the value for our locator strategy, specifically targeting the anchor tag.
  • The subsequent loop iterates through the `links` list. For each `link` element, we print its text (if available) and its `href` attribute, which contains the URL.
  • assert len(links) > 0: A simple assertion to ensure that at least one anchor element was found. This is a basic example; in real tests, you would have more specific assertions based on your requirements.

 

Comments

Add Your Comments