Sometimes you only know part of a link's text on a webpage. Finding elements by partial link text helps you click or check links without needing the full text.
Find element by partial link text in Selenium Python
element = driver.find_element(By.PARTIAL_LINK_TEXT, "partial_text")Use By.PARTIAL_LINK_TEXT to find links containing the given text.
This works only for <a> tags with visible text.
element = driver.find_element(By.PARTIAL_LINK_TEXT, "Learn")element = driver.find_element(By.PARTIAL_LINK_TEXT, "Contact")elements = driver.find_elements(By.PARTIAL_LINK_TEXT, "Help")This script opens a webpage with links, finds a link containing "Try it" in its text, and prints the full text of that link. It uses headless Chrome to run without opening a browser window.
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 import time # Setup Chrome driver options options = Options() options.add_argument('--headless') # Run browser in headless mode # Initialize driver (adjust path to chromedriver as needed) service = Service() driver = webdriver.Chrome(service=service, options=options) try: # Open example page with links driver.get('https://www.w3schools.com/html/html_links.asp') # Find link by partial link text element = driver.find_element(By.PARTIAL_LINK_TEXT, 'Try it') # Print the full link text found print(f"Found link text: {element.text}") finally: driver.quit()
Partial link text matching is case-sensitive in Selenium.
If multiple links match, find_element returns the first one found.
Use find_elements to get all matching links as a list.
Partial link text helps find links when you only know part of their text.
It works only on <a> elements with visible text.
Use it to make tests more flexible and less brittle.
Practice
find_element_by_partial_link_text do?Solution
Step 1: Understand the method purpose
The methodfind_element_by_partial_link_textsearches for<a>elements that contain the given text partially.Step 2: Compare with other locator methods
Unlike exact text match or tag name search, this method matches any link containing the partial text.Final Answer:
Finds a link element containing the specified partial text. -> Option AQuick Check:
Partial link text = Finds links with partial text [OK]
- Confusing partial link text with exact text match
- Using it on non-link elements
- Expecting it to find by attribute instead of visible text
Solution
Step 1: Check method usage and argument format
The method requires a string argument inside parentheses and quotes, like"Login".Step 2: Validate Python syntax
driver.find_element_by_partial_link_text("Login") uses correct parentheses and quotes. Options A, B, and D have syntax errors or wrong brackets.Final Answer:
driver.find_element_by_partial_link_text("Login") -> Option CQuick Check:
Correct method call uses parentheses and quotes [OK]
- Omitting quotes around the string
- Using square or curly brackets instead of parentheses
- Passing variable without quotes
element = driver.find_element_by_partial_link_text("Login")
print(element.text)Solution
Step 1: Understand partial link text matching
The method finds the first link containing "Login" anywhere in its visible text.Step 2: Check what
It returns the full visible text of the found link, which is "Click here to Login".element.textreturnsFinal Answer:
Click here to Login -> Option DQuick Check:
Partial match finds full link text [OK]
- Expecting only the partial text to print
- Assuming it throws exception if partial matches
- Confusing element.text with attribute values
element = driver.find_element_by_partial_link_text(Login) print(element.text)
Solution
Step 1: Identify the error in argument usage
The argument Login is not in quotes, so Python treats it as a variable, causing NameError.Step 2: Correct the argument to a string
Wrap Login in quotes like "Login" to pass a string literal.Final Answer:
NameError because Login is not quoted; fix by adding quotes: "Login" -> Option BQuick Check:
String arguments need quotes [OK]
- Forgetting quotes around string literals
- Assuming partial link text accepts variables without quotes
- Misreading error type as syntax error
Solution
Step 1: Understand partial link text limitation
The method matches only one partial string at a time; it cannot match multiple alternatives in one call.Step 2: Implement fallback logic
Try finding link with "Sign" first; if not found, catch exception and try "Register" next.Final Answer:
Try finding by partial link text "Sign" first, if not found, then try "Register". -> Option AQuick Check:
Partial link text matches one string; use fallback for multiple options [OK]
- Using 'or' inside partial link text string
- Expecting one call to match multiple partial texts
- Using link_text instead of partial_link_text for partial matches
Ready to prove it?
Pass the test and this pattern moves unknown
