code: def get_link_attribute(self, link_text, attribute, hard_fail=True):
          
          soup = self.get_beautiful_soup()
          html_links = soup.find_all('a')
          for html_link in html_links:
              if html_link.text.strip() == link_text.strip():
                  if html_link.has_attr(attribute):
                      attribute_value = html_link.get(attribute)
                      return attribute_value
                  if hard_fail:
                      raise Exception(
                          'Unable to find attribute {%s} from link text {%s}!'
                          % (attribute, link_text))
                  else:
                      return None
          if hard_fail:
              raise Exception("Link text {%s} was not found!" % link_text)
          else:
              return None
docs: Finds a link by link text and then returns the attribute's value.
              If the link text or attribute cannot be found, an exception will
              get raised if hard_fail is True (otherwise None is returned).