In Selenium WebDriver, By.linkText() and By.partialLinkText() are used to locate anchor tags (<a>) with specific text.

πŸ”Ž What is By.linkText()?

By.linkText() is used when the exact text of a link is known. It matches the link exactly as written in the HTML.

<a href="https://example.com/login">Login</a>

✅ When to Use By.linkText()?

  • ✅ When the full link text is unique and stable.
  • ✅ Ideal for testing static pages where link text doesn't change dynamically.

πŸ“Œ Syntax in Java

driver.findElement(By.linkText("exact_link_text"));

πŸ’» Example: Clicking on a Link with Exact Text

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;

public class LinkTextExample {
    public static void main(String[] args) {
        System.setProperty("webdriver.chrome.driver", "path/to/chromedriver");
        WebDriver driver = new ChromeDriver();

        driver.get("https://example.com");

        // Locate link with exact text
        WebElement loginLink = driver.findElement(By.linkText("Login"));

        // Click the link
        loginLink.click();

        driver.quit();
    }
}

πŸ”Ž What is By.partialLinkText()?

By.partialLinkText() is used when you want to match only a part of the link text. This locator is useful when the full link text is dynamic or when you only know part of the text.

<a href="https://example.com/login">Login Page</a>

✅ When to Use By.partialLinkText()?

  • ✅ When the full link text is dynamic or you only know part of the text.
  • ✅ When dealing with links that may contain common words or phrases (e.g., “Home”, “Contact”).

πŸ“Œ Syntax in Java

driver.findElement(By.partialLinkText("partial_link_text"));

πŸ’» Example: Clicking on a Link with Partial Text

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;

public class PartialLinkTextExample {
    public static void main(String[] args) {
        System.setProperty("webdriver.chrome.driver", "path/to/chromedriver");
        WebDriver driver = new ChromeDriver();

        driver.get("https://example.com");

        // Locate link with partial text
        WebElement loginLink = driver.findElement(By.partialLinkText("Login"));

        // Click the link
        loginLink.click();

        driver.quit();
    }
}

✅ Best Practices

Locator When to Use Pros Cons
By.linkText() When the exact link text is known Easy to implement, precise Breaks if the link text changes
By.partialLinkText() When you only know part of the link text Flexible, useful for dynamic content Not always precise if too many links share similar text

⚠️ Common Mistakes

Mistake Fix
Using By.linkText() when link text is not unique Use other locators like By.id() or By.cssSelector() if possible
Using By.partialLinkText() with vague text Ensure partial text is specific enough to avoid matching multiple links

πŸ“š Summary

  • By.linkText() is used for exact matches with link text.
  • By.partialLinkText() is used when you know part of the link text.
  • Use By.linkText() for static content and By.partialLinkText() for dynamic or partial content.

πŸš€ Keep Learning

Explore other locators in Selenium: