Reputation: 475
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
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
Reputation: 3235
Then you can try something like this.
for (int i=0; i<td.length(); i++){
driver.find_element_by_xpath("(//a[contains(text(),'Details')])[i]").click()
}
Upvotes: 2
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
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