selenium.common.exceptions.InvalidSessionIdException
이 오류는 보통 Selenium 드라이버 세션이 종료되었거나
더 이상 유효하지 않은 상태에서 driver.current_url 같은 명령을 실행하려고 할 때 발생합니다.
InvalidSessionIdException은 Selenium WebDriver가 더 이상 활성화된 세션을 가지고 있지 않다는 것을 의미합니다. 이는 다양한 이유로 발생할 수 있습니다:
나는 소스에서 driver.quit(), driver.close() 호출을 한 부분이 없다.
자동화 로직에서 반복 주기가 짧아 WebDriver 인스턴스가 값을 갱신하는 중에 충돌이 발생했을 가능성이 크다. 하지만 (나는) selenium 내부 동작을 디버깅할 수 없기 때문에 소스에서 오류가 발생하는 중단점인 driver.current_url 사용하는 부분을 고쳐본다.
driver.current_url을 호출하기 전에 WebDriver 인스턴스가 여전히 유효한지 확인 :
인스턴스가 유효하지 않다면 실행중인 브라우저가 종료되기 때문에 driver.current_url 자체의 값을 True/Fasle를 통해 객체가 값을 가지고 있는지 확인한다.
driver.current_url.startswith("https://m.booking"):
다음과 같이 and 연산자를 활용하면 driver.current_url 객체가 값을 가지고 있을 때만startwit() 메서드를 호출하게 되어 오류 발생 가능성을 낮출 수 있다고 기대했다.
while driver.current_url and driver.current_url.startswith("https://m.booking"):
고친 코드로 실행해본 결과 프로그램이 중단되지 않고 잘 실행되었다.