@property
def string(self):
    """Convenience property to get the single string within this tag.
    :Return: If this tag has a single string child, return value
     is that string. If this tag has no children, or more than one
     child, return value is None. If this tag has one child tag,
     return value is the 'string' attribute of the child tag,
     recursively.
    """
if len(self.contents) != 1:
    return None
child = self.contents[0]
if isinstance(child, NavigableString):
    return child
return child.string
Beautifulsoup find element by text using `find_all` no matter if there are elements in it