'Returns a list of nested Elements with the given tag name.
The tag name can include a class (e.g. div.header) or an id (e.g. div#content).'

def get_elements_by_tagname(self, v):

    if (isinstance(v, basestring) and ('#' in v)):
        (v1, v2) = v.split('#')
        v1 = ((v1 in ('*', '')) or v1.lower())
        return [Element(x) for x in self._p.findAll(v1, id=v2)]
    if (isinstance(v, basestring) and ('.' in v)):
        (v1, v2) = v.split('.')
        v1 = ((v1 in ('*', '')) or v1.lower())
        return [Element(x) for x in self._p.findAll(v1, v2)]
    return [Element(x) for x in self._p.findAll(((v in ('*', '')) or v.lower()))]
