본문 바로가기

PYTHON

[selenium] shadowRoot 접근하는 방법

반응형

크롬으로 다운로드 한 파일 정보를 얻기 위해 selenimu으로 분석할 때 #shadow-root를 보게 되었습니다.

 

find_element함수로 shadow-root를 찾으려 했지만 잘 안돼서, 구글에서 검색해 보니, 자바스크립트로 해결하는 방법이 제일 무난해 보였습니다.

 

 

크롬 디버거, 콘솔 탭에서 위와 같이 스크립트를 작성했더니 원하는 결과를 얻었습니다.

 

 

 위 스크립트를 execute_script 함수 인자로 넣어 주면 됩니다.

 

browser.execute_script(
        """
    var manager = document.querySelector('downloads-manager').shadowRoot;
    var item = manager.querySelector('downloads-item').shadowRoot;
    var link = item.getElementById('file-link');
    return link.innerHTML;
    """
    )

 

이렇게 하면 원하는 값을 가져올 수 있습니다.

 

 

 

반응형