[파이썬] 리눅스 셀레니움(Selenium) 사용시 assert_process_still_running 오류 해결

    728x90

     

    서론

     

    싱글보드 컴퓨터인 오렌지파이에 리눅스의 일종인 암비안(Armbian)을 사용하고 있습니다. 여기에 파이썬으로 셀레니움 모듈을 사용하는 코드를 작성하였습니다. 

    코드는 정상적으로 동작하나 문제는 리눅스의 작업스케쥴러인 크론탭(crontab)을 사용할 때 문제가 발생하였습니다. 

     

    "selenium/webdriver/common/service.py", line 119, in assert_process_still_running
        raise WebDriverException(f"Service {self.path} unexpectedly exited. Status code was: {return_code}")
    assert_process_still_running

    일반적으로 파이썬 코드를 직접 수동으로 실행하면 문제가 발생하지 않으나 리눅스 크론탭으로 작업을 등록해두면 어김없이 assert_process_still_running 이라는 오류를 뿜어댔습니다. 어떨 때는 오류가 없이 실행되는 날도 있고, 아니면 오류만 계속 나기도 합니다. 

     

    그래서 한 동안 오류를 고쳐보기 위해 코드를 수정해보아도 오류가 해결되지 않았습니다. 

    코드에서 driver.quit() 함수로 웹브라우저를 정상적으로 종료해도 오류는 계속되었습니다. 

     

    해결법 

     

    그러다가 문득 생각이 든게 브라우저 설정 문제일꺼라는 생각이 들었습니다. 

     

    셀레니움으로 크로미움(chromium) 브라우저를 제어하는데 생각난 것이 크롬 옵션에 "크롬 종료 후에도 백그라운드에서 계속 실행" 이라는 옵션이 떠올랐습니다. 

     

    크로미움 설정

    그래서 바로 크로미움 설정에 들어가서 "Chromium 종료 후에도 백그라운드 앱을 계속 실행" 옵션을 꺼주었습니다. 

     

    그 후 일주일동안 확인해 보니 assert_process_still_running 오류가 해결되었습니다. 거의 두 달동안 이 오류를 해결하기 위해서 골치아팠는데 드디어 해결이 되었습니다. 

    반응형

    댓글

    Designed by JB FACTORY