본문으로 바로가기

파일의 IT 블로그

  1. Home
  2. 프로그래밍/Python
  3. [Selenium] Edge 업데이트 이후 IEDriver 제대로 작동하지 않을때 - 익스플로러 Edge로 강제 리다이렉트 문제

[Selenium] Edge 업데이트 이후 IEDriver 제대로 작동하지 않을때 - 익스플로러 Edge로 강제 리다이렉트 문제

· 댓글개 · KRFile

글을 읽기 전

  1. 본 글은 IEDriver이 윈도우 업데이트 이후 강제로 엣지로 열려서 동작하지 않을 때 해결법입니다.
  2. 인터넷 익스플로러를 사용하실 일이 없다면 이 글을 보실 필요가 없습니다.
  3. 윈도우 업데이트를 하지 않으셨고 IEDriver이 정상 작동하시는 분들 역시 이 글을 읽을 필요가 없습니다.

 

 

최근 들어 마이크로소프트 사의 브라우저인 Edge에 많은 변화가 생겼습니다. 우선은 아시다 싶이 ChatGPT의 일종의 업그레이드(?) 판인 Bing Chat AI가 나왔는데 매우 우수한 성능으로 화제가 되고 있습니다. 이 Bing Chat 의 경우 우선적으로 Edge에서만 이용할 수 있습니다. (물론 꼼수를 이용하면 크롬에서도 Bing Chat을 사용할 수 있습니다.) Bing Chat 하나만으로도, Bing과 Edge에 대한 관심도가 매우 높아졌다고 합니다.

 

어쨌던 이 Bing 의 AI 챗봇이 Edge에 통합되어 사진에 보시다 싶이 브라우저 오른쪽 위의 b 버튼을 누르면 바로 사용할 수 있게 변경되었습니다. 또 단순히 Bing Chat 뿐만이 아니라 이걸 활용해서 글 초고를 작성해주는 기능까지 들어왔습니다. 사실 저도 요새 블로그 글 쓰는게 매우 귀찮아서 이 기능으로 초고를 작성하고, 수정만 하는 방식으로 글을 쓸까도 고민중이네요. 

 

IE 사용불가, Edge 자동 리다이렉트

* 글 본문에서 지칭하는 IE의 경우 Internet Explorer를 지칭합니다.

어쨌던 간에 분명 Edge에 많은 변화가 생겼다곤 했는데 Bing Chat 하나 밖에 소개를 안드렸죠? (사실 Bing Chat 하나만으로도 매우 큰 변화이긴 합니다.)

정확히는 언제 패치가 된건지 모르겠는데 이제 더 이상 IE를 사용할 수 없습니다. 

사실 웹 개발자 입장에서나, 제 개인적 의견에서나 IE가 퇴출된 사실은 참으로 반갑습니다. IE는 혼자서 웹 표준도 안지키고 CSS도 구버전에 틀어박혀 있어서 웹 호환성을 지키는데 참 말썽이였거든요.

 

하지만 그래도.. 여전히 IE를 사용해서 접속하는 사이트가 간혹 존재합니다. 아마 2023년인 지금을 기준으로 찾아보긴 어렵겠지만, 그래도 존재합니다. 실제로 제가 Selenium으로 작업하고 있는 사이트 역시 여전히 IE를 사용하고 있어서 정말 짜증나지만 어쩔 수 없이 IEDriver를 사용하며 인터넷 익스플로러로 자동화 작업을 제어중입니다.

 

사실 인터넷 익스플로러는 아시다 싶이 작년 6월에 지원이 종료되었습니다. 그래도 저 같이 IE를 어쩔 수 없이 사용해야 하는 사람은 윈도우 안에서 Internet Explorer를 실행시켜서 사용할 수 있었습니다.

 

하지만.. 언젠가부터 Internet Explorer를 실행시키면?

 

이렇게 인터넷 익스플로러 창이 열리지 않고 Edge로 자동 리다이렉트 됩니다.

아마 윈도우 10 최신 업데이트 사항에 포함된 패치인 거 같습니다.

 

일단은 저도 앞에서 말씀드렸듯이 이 패치가 언제 진행된 진 모르겠지만 정상적인 방법으로 Internet Explorer를 더 이상 이용하긴 어렵습니다. Internet Explorer를 켜도 자동으로 Edge를 열어버리니깐요.

 

사실 정확히는 Internet Explorer 를 사용할 수 없게 했다기 보단, 원래 Internet Explorer 는 Edge 안에 포함시켜서 넣어버리고, 원래 Internet Explorer 아이콘을 사용하지 못하게 한 것에 가깝습니다.

 

응? Internet Explorer는 지원 종료 됐고 이제 아이콘 열어도 Edge 밖에 안나오는데 무슨소리냐? 라고 하실 수 있겠지만, 마이크로소프트에서도 Internet Explorer 에 대한 레거시 지원을 완전히 삭제하긴 어려웠는지 IE로 밖에 접속이 안되는 사이트를 이용할려면, IE 호환모드라는 형태로 Edge 안에서 IE가 돌아가서 인터넷 익스플로러가 실행됩니다.

 

생긴건 이렇습니다. 분명 겉보기엔 Edge 안에서 실행되고 있는 거 같은데 안에 내용은 실제로 Internet Explorer 입니다.

인터넷 익스플로러가 Edge 안에 갇혀서 실행되고 있는 것이죠. 그래서 속도도 엄청나게 느립니다.

그리고 보시다 싶이 네이버에 접속하면 인터넷 익스플로러 인식한 것을 볼 수 있습니다. (브라우저 강제 종료 문구)

 

자신이 접속한 브라우저를 알 수 있는 (https://www.whatismybrowser.com/) 에서도 인터넷 익스플로러로 인식됩니다.

 

Edge 업데이트 이후 작동하지 않는 IEDriver 를 살려보자

어쨌던 간에.. 글 제목에서 아시다 싶이 오늘 소개할 내용은 윈도우 업데이트 이후 동작하지 않는 Selenium IEDriver을 다시 사용할 수 있게 살리는 내용입니다.

위에서 이해하셨던 대로 인터넷 익스플로러를 사용하려고 창을 열면 Edge로 자동 리다이렉트 되기 때문에 Selenium을 이용해 IEdriver로 인터넷 익스플로러를 열어도 엣지가 열려서 제어가 불가능 합니다.

 

오늘은 이걸 고쳐보도록 하겠습니다.

윈도우 업데이트 이후 IEDriver을 작동시키는 방법 2가지를 알아봅시다.

* 물론 이제 인터넷 익스플로러를 정상적으로 이용하는 방법은 매우 번거롭습니다. IEDriver을 사용하려면 Edge안에서 돌아가는 형태로 제어해야 합니다.

 

1. IEDriver 업데이트 하기(최신 버전 사용, 권장)

https://www.selenium.dev/downloads/

 

Downloads

Selenium automates browsers. That's it!

www.selenium.dev

현재 제가 사용중인 IEDriver 버전은 v4.0.0.0 인데 이 버전은 구버전이라 새로운 윈도우 업데이트에 대응되지 않습니다.

이번에 IEDriver이 윈도우 업데이트에 맞춰서 업데이트 됐는데 그냥 IEDriver 최신 버전을 설치해주면 문제가 깔끔하게 해결됩니다. 

 

사이트에 접속해 아래에서 32비트 또는 64비트 IE Driver를 받아주시면 됩니다.

권장은 32비트인데, 저도 32비트 드라이버를 사용중입니다.

 

 

2. Selenium 옵션에 Edge 호환모드 추가하기

url = 'http://naver.com/'
path = "IEDriverServer.exe"

options = Options()
options.set_capability(
    'INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS', True)
options.set_capability('requireWindowFocus', True)
options.set_capability('nativeEvents', False)

# edge로 리다이렉션 허용 [1]
options.attach_to_edge_chrome = True

# edge 경로 (하드코딩), 필수로 작성
options.edge_executable_path = "C:/Program Files (x86)/Microsoft/Edge/Application/msedge.exe"

driver = webdriver.Ie(options=options, executable_path=path)
driver.get(url)

부득이한 경우로 IEDriver을 최신 버전으로 바꾸기 어려운 경우 위 처럼 IEDriver 구버전에서 사이트를 열 때 Edge 호환 모드로 열도록 옵션 2가지를 주시면 됩니다. 

코드는 Python 기준인데 어떤 언어라도 IEDriver에 옵션을 잘 주어서 attach_to_edge_chrome 프로퍼티와, edge_executable_path로 엣지 경로를 하드 코딩으로 지정해주시면 됩니다.

 

아무래도 하드 코딩으로 엣지 경로를 박아야 하기 때문에 좋은 형태의 코드는 아니며 위 1번 처럼 IEDriver을 최신 버전으로 업데이트 하는걸 추천드립니다.

 

어쨌던 위 방법대로 하면 Edge안에서 IE가 돌아가면서 Selenium으로 정상적인 제어가 이루어집니다.

IE만 되는 사이트가 이제 얼마나 될 진 모르겠지만.. 저의 경우엔 선택지가 없군요 ㅠㅠ

 

2023-04-15 추가

최신 IE 드라이버 4.8.1.0 에서 불안정성이 보여서 구버전인 4.0 으로 돌리고 options에 Edge 호환모드로 동작하도록 바꾸는 코드를 사용하기로 결정했습니다. 도대체 이 쓰레기 싸이트는 언제까지 인터넷 익스플로러로 돌릴 생각인지 ; 빨리 서버나 내렸으면 좋겠네요.

 

 

 

참고

내 머리

 

SNS 공유하기
💬 댓글 개
이모티콘창 닫기
울음
안녕
감사해요
당황
피폐

이모티콘을 클릭하면 댓글창에 입력됩니다.