Clicking on a link via selenium
Question:
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?
Answers:
You can use find_element_by_link_text
:
For example:
link = driver.find_element_by_link_text('Details')
To Click on it, just call click method:
link.click()
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()
}
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()
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 🙂
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?
You can use find_element_by_link_text
:
For example:
link = driver.find_element_by_link_text('Details')
To Click on it, just call click method:
link.click()
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()
}
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()
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 🙂