Extracting href Attribute from Selenium-Parsed Links in Python

How do I extract the href attribute of a link using Selenium in Python?

you’re delving into Selenium with Python? That’s great! So, to extract the href attribute of a link using Selenium, the go-to method is get_attribute(). It’s quite handy for grabbing specific attributes. Here’s a neat example:

def test_chart_renders_from_url(self):
    url = 'http://localhost:8000/analyse/'
    self.browser.get(url)
    org = driver.find_element_by_id('org')
    # Now, let's grab the value of org's attribute
    val = org.get_attribute("attribute name")

Nice, Shashank! Another approach, if you’re up for it, involves a bit of JavaScript magic using execute_script(). Here’s how it rolls:

def test_chart_renders_from_url(self):
    url = 'http://localhost:8000/analyse/'
    self.browser.get(url)
    org = self.browser.find_element_by_id('org')
    # We can also use execute_script() to snag the attribute value
    val = self.browser.execute_script("return arguments[0].getAttribute('attribute name');",

Building on what both have mentioned above, here’s a third way to get that attribute value using JavaScript:

def test_chart_renders_from_url(self):
    url = 'http://localhost:8000/analyse/'
    self.browser.get(url)
    org = self.browser.find_element_by_id('org')
    # Let's use execute_script() again, but this time with a slightly different twist
    val = self.browser.execute_script("return arguments[0].getAttribute('attribute name');", org)

This JavaScript approach offers flexibility, especially when dealing with complex attribute retrievals. It’s good to have multiple tricks up your sleeve!