본문 바로가기

💻 개발IT/기타

[selenium] ElementClickInterceptedException: Message: element click intercepted:

문제

크롤링 하는 도중에 아래와 같은 에러가 발생했다.

selenium.common.exceptions.ElementClickInterceptedException: 
Message: element click intercepted: 
Element <li class="page-item">...</li> is not clickable at point (855, 838). 
Other element would receive the click: 
<iframe id="aswift_4" name="aswift_4" style="width: 1005px !important; height: 124px !important; display: block; margin: 0px auto;" sandbox="allow-forms allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-top-navigation-by-user-activation" 
width="1005" height="124" frameborder="0" marginwidth="0" marginheight="0" vspace="0" hspace="0" allowtransparency="true" scrolling="no" src="https://googleads.g.doubleclick.net/pagead/html/r20220921/r20110914/zrt_lookup.html?...

<li>를 클릭하고자 했는데 다른 element 때문에 불가능하다는 것이다. 

 

확인해보면 사이트 하단에 구글 광고가 있었다.

 

처음에는 ▽ 버튼을 눌러 해당 광고를 꺼보려고 노력했으나..

불가능했다.

 

※ 자세한 이유는 여기서..

 

[HTML] Shadow DOM 이란? (feat. 크롤링 실패)

크롤링을 하면서 아무리 해도 그런 element를 찾지 못한다는 에러가 나왔다. selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element 자세히 보니 shadow-root..

sunghee2.tistory.com

 

해결방법

그래서 생각해낸 방법은 

Webdriver에 Adblock extension을 설치하는 것!

 

1. Adblock crx 파일 다운로드

crx 파일을 다운 받아 프로젝트 파일에 넣는다.

https://www.crx4chrome.com/crx/31927/

 

Download Offline AdBlock 5.1.2 CRX File - Crx4Chrome

Direct Download AdBlock v5.1.2 CRX File (Free Productivity Extension for Chrome or Chromium based Browsers)

www.crx4chrome.com

 

2. 코드

options = webdriver.ChromeOptions()
options.add_extension('extension_5_1_2_0.crx')
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options)

 

 

이제 광고의 방해 없이 크롤링 성공

반응형