파이썬 셀레니움으로 웹 크롤링을 하다보면 분명 존재하는 element임에도 불구하고 click()이 작동되지 않을 때가 종종 있습니다. 해당 element를 찾을 수 없다던지(아니 분명 있는데?) 해당 element에 수행할 수 없는 명령이라던지… 이럴 땐 javascript 명령어로 click을 실행하여 해결할 수 있어요.
StaleElementReferenceException 오류
이 오류는 페이지 갱신 또는 변경으로 인해 이전에 참조했던 웹 요소가 더 이상 유효하지 않을 때 발생한다고 합니다.
자바스크립트 명령어로 해결하기
webElement driver에 대해 .click()
명령을 js명령어로 내려줍니다.
from selenium.webdriver.common.by import By
target = driver.find_element(By.TAG_NAME, 'a') #클릭하고자 하는 대상
driver.execute_script("arguments[0].click();", target)