Mike C.
Mike C.

Reputation: 1921

Print url when element is a link in Python-Selenium

I'm using Python3 and Selenium. The xpath below points to a link. I would like to print the URL. If I write print(link.text) I get the displayed text portion of the link only. For example: link.text in the following link would give me "link text" when I want URL.

HTML:

<a href="url">link text</a>

Code trials:

path = f"/html/body/div/section[5]/div/div/div[1]/div[3]/div[{str(n)}]/div/div[1]/div/div[2]/div[1]/a"
link = driver.find_element_by_xpath(path)
print(link.url) 

Upvotes: 0

Views: 951

Answers (2)

undetected Selenium
undetected Selenium

Reputation: 193308

print(link.text) would print the text / textContent / innerHTML of the <a> WebElement i.e.

link text

If your usecase is to print the value of the href attribute i.e. url you can use the following solution:

print(link.get_attribute("href"))

Upvotes: 1

DonnyFlaw
DonnyFlaw

Reputation: 690

You need to use

link.get_attribute('href')

instead of

link.text

Upvotes: 2

Related Questions