티스토리 뷰

들어가며

  • Selenium 사용시 특정 Element의 text 값을 가져오려고 할 때 간혹 해당 Element의 속성이 "display:none" 상태라서 빈 text가 가져와지는 경우가 있습니다.
    • 이유를 살펴보니 Selenium WebDriver는 보이는 Element에 대해 상호작용하기 때문이라고 함
  • 이런 상황에서 다른 동작 없이 text 값을 가져오는 방법을 알아보겠습니다.
    • 저의 경우 display 속성을 바꾸기 위해서 click을 하는 시도를 해보았지만 참 비효율적 이었습니다

해결방법

크게는 두가지 방법이 있습니다. 다만 이 두가지 방법이 서로 약간 다른 점이 있어서 목적에 따라서 사용하시면 될 것 같습니다.

 

innerHTML 

  • Element 내에 있는 HTML 내용 전체를 반환합니다. 
    • ex) <div>Hello <p> World!</p></div>중에서 div 태그의 innerHTML을 가져오면 Hello <p> World!</p>가 반환됨
  • 예제 코드
//Java
JavascriptExecutor executor = (JavascriptExecutor)driver;
String text= executor.executeScript("document.getElementById('elementName').innerHTML");

//python
var text = element.get_attribute('innerHTML')

textContent

  • Element 내에 있는 HTML 태그를 제외한 모든 텍스트를 반환합니다.
    • ex) <div>Hello <p>World!</p></div>중에서 div 태그의 textContent를 가져오면 Hello World!가 반환됨
  • 예제 코드
//Java
String text = element.getAttribute("textContent")

//Python
var text = element.get_attribute('textContent')

관련글

2020/02/15 - [프로그래밍/크롤링] - (크롤링) Selenium "unexpected alert open” 오류 발생 시 해결법

 

(크롤링) Selenium "unexpected alert open” 오류 발생 시 해결법

들어가며 Selenium 사용시 예상치 못한 Alert 창이 생겨 "unexpected alert open"이라는 오류가 발생한적이 있었습니다 Selenium을 사용하여 alert 창 발생시 alert 창을 close하는 방법을 알아보겠습니다. ※ Se..

jinseongsoft.tistory.com

 

(크롤링) Selenium iframe 파싱 방법

들어가며.. Selenium으로 파싱을 하는데 iframe 안에 있는 정보를 파싱을 하고자 했다. (Java 사용) 이리저리 알아보다 간단한 방법을 알아내었다. 방법 iframe 파싱 예졔 코드 'driver.switch_to.fram..

jinseongsoft.tistory.com

 

(크롤링) Java Selenium 사용시에 브라우저 전시 안되게 하는 방법 (크롬 드라이버(브라우저)숨기기)

 이번 시간에는 Selenium 사용시에 웹드라이버에서 브라우저가 전시 안된 상태로 크롤링을 하는 방법에 대해서 알아보록 하겠습니다.  Selenium을 사용하게 되면 웹드라이버를 사용하게 되면서 테�

jinseongsoft.tistory.com

 

[크롤링] Java Selenium 사용법

 이번 시간에는 Java로 selenium을 사용하는 방법에 대해서 알아보도록 하겠습니다. 이번 시간에는 설치 및 적용을 해보는 방법을 알아보고 실습은 따로 알아보도록 하겠습니다. Selenium이란?  seleni

jinseongsoft.tistory.com

 

 

반응형
댓글