본문 바로가기

자동화프로그램/파이썬-기초

[selenium] element 클릭이 되지 않을 때: ElementNotInteractableException Message: element not interactable 에러

반응형

python selenium 을 이용하여 chorome webdriver 상에서 자동화 코드를 수행하다가 다음과 같은 에러가 발생했습니다. 

selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable

에러 발생 이유

해당 에러 발생 이유는 element가 HTML DOM 에는 존재하지만, 선언되지 않았거나 상호작용을 할 수 없을 때 발생한다고 합니다. 다시 말하면, 엘레멘트를 html상에서 찾을 수 있지만, 상호작용.. 사용할 수 없을 때 ElementNotInteractable Exception을 return 하여 에러메세지를 보여준 것입니다.

파이썬 selenium - element not interactable 에러 이유와 해결 방법


해결 방법

아마도 해당 에러는 아래 코드와 같이 .click() 으로 되어있었을텐데요 (왜냐하면 제가 그렇게 코딩을 했었습니다^^) 

driver.find_element(By.method,'something').click()

아래와 같이 .send_keys(Keys.ENTER) 을 입력하면 위 에러가 해결됩니다. 

send_keys(Keys.ENTER)를 사용하고싶다면,

from selenium.webdriver.common.keys import Keys 

문구를 코드 상단에 를 넣어주시면 됩니다.

driver.find_element(By.methond, 'something').send_keys(Keys.ENTER) # 검색을 수행함.

selenium.webdriver.common.keys

Selenium library는 웹 크롤링에서 필수적인 라이브러리인데요, 키보드의 키를 컴퓨터로 전달하기 위해서 사용합니다.

위의 코드에서 .send_keys(Keys.ENTER) 와 같이 Keys 라는 struct 에 다양한 키보드값들을 가집니다. 

Keys 하위 명령어들로는 아래와 같이 다양합니다.

  • Kyes.ENTER,
  • 아래는 화살표 값들
    Keys.ARROW_DOWN, 
    Keys.ARROW_LEFT, 
    Keys.ARROW_RIGHT, 
    Keys.ARROW_UP,
  • Keys.BACK_SPACE,
  • Keys.CONTROL,
  • Keys.ALT,
  • Keys.DELETE,
  • Keys.TAB,
  • Keys.SPACE,
  • Keys.SHIFT,
  • Keys.EQUALS,
  • Keys.ESCAPE,
  • Keys.HOME,
  • Keys.INSERT,
  • Keys.PAGE_UP,
  • Keys.PAGE_DOWN,
  • Keys.F1, Keys.F2, Keys.F3, Keys.F4, Keys.F5, Keys.F6, Keys.F7,Keys.F8, Keys.F9 Keys.F10, Keys.F11, Keys.F12

selenium.webdriver.common.keys 이용 방법

 

반응형