canbaran
canbaran

Reputation: 475

Clicking on a link via selenium

I am trying to do some webscraping via Selenium. My question is very simple: How do you find a link and then how do you click on it? For instance: The following is the HTML that I am trying to web-scrape:

<td bgcolor="#E7EFF9">
  <a href="javascript:selectDodasaDetdasdasy(220011643,'Kdasdası');" target="_self">
   Details
  </a>
</td>

So, as you can see the word "Details" is a link.

How can I find that link using Selenium and click on it?

Upvotes: 46

Views: 104647

Answers (4)

falsetru
falsetru

Reputation: 369074

You can use find_element_by_link_text:

For example:

from selenium.webdriver.common.by import By

# <...>

link = driver.find_element(By.LINK_TEXT, 'Details')

To Click on it, just call click method:

link.click()

Upvotes: 80

Paras
Paras

Reputation: 3235

Then you can try something like this.

for (int i=0; i&lttd.length(); i++){
        driver.find_element_by_xpath("(//a[contains(text(),'Details')])[i]").click()
        }

Upvotes: 2

Mr. Bordoloi
Mr. Bordoloi

Reputation: 80

One thing is missed by everyone. Its a list by the below statement. You need to take select an element from this list.

driver.find_element_by_link_text('Details')

If you check

for i in driver.find_element_by_link_text('Details')
    i.click()

BINGO :-)

Upvotes: -2

Gayatri
Gayatri

Reputation: 11

You can try to click link by using xpath locator e.g.

link=driver.find_element_by_xpath(.//*[@id="content"]/div[3]/div/div/div[2]/h4)

link.click()

Upvotes: 0

Related Questions