직접적으로 붙어있는 부모 태그 엘러먼트를 얻고자 한다면... 아래의 방법을 사용하는 것을 권한다.
# no matter how to get element. just webdriver element type
# current element, we called this 'child'
child_elem = web_driver.find_element_by_xpath(<xpath_expr>)
# get parent
parent_elem = child_elem.find_element_by_xpath('..')
이 방법이 parcel
에서도 먹히는지는 아직 테스트 해보지 않았다.
그러나 selenium webdriver
에서는 꽤나 괜찮은 방법으로
def get_href_from_parent(self, child_elem):
_node = child_elem
_href = _node.get_attribute('href')
# looping, before get href value
while not bool(_href):
_parent_elem = _node.find_element_by_xpath('..')
_href = _parent_elem.get_attribute('href')
_node = _parent_elem
return _href
만약 선택된 엘러먼트가 <a>
가 아닌 하위 태그라면, 부모에게 접근하는 방식으로 href
속성값을 받아오도록 했다.
당연한 얘기지만, HTML
에서는 모든 태그의 직접적인 부모는 하나이다.
직접적인 : directed, immediate, 바로 맞닿아있다.