728x90
반응형
C#에서 셀레니움을 활용하여 크롬 웹브라우저를 제어하고 있으면 몇시간 후에 크롬 웹브라우저로부터 응답이 없다고 Timeout 오류가 발생하거나 OutOfMemory에러가 발생하여 제어불능에 빠지는 상황이 발생한다.
OpenQA.Selenium.WebDriverException: The HTTP request to the remote WebDriver server for URL http://localhost:65320/session/2c1547c846178882ccf6af559244ec4e/url timed out after 60 seconds.
---> System.Net.WebException: The operation has timed out.
at System.Net.HttpWebRequest.GetResponse()
at OpenQA.Selenium.Remote.HttpCommandExecutor.MakeHttpRequest(HttpRequestInfo requestInfo)
--- End of inner exception stack trace ---
at OpenQA.Selenium.Remote.HttpCommandExecuto
r.MakeHttpRequest(HttpRequestInfo requestInfo)
at OpenQA.Selenium.Remote.HttpCommandExecutor.Execute(Command commandToExecute)
at OpenQA.Selenium.Remote.DriverServiceCommandExecutor.Execute(Command commandToExecute)
at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters)
at OpenQA.Selenium.Remote.RemoteWebDriver.set_Url(String value)
at Program.parseC() in Program.cs:line 101
at Program.parseRC() in Program.cs:line 102
오류가 발생하면 위의 문구가 나타나는데 셀레니움을 이용한 자동화 프로그램의 경우 무중단 동작이 가장 중요한 완성 요건이기에 이 문제를 잘 해결할 필요가 있다.
오류가 발생하기 직전에는 위와 같이 탭을 1개만 쓰는데도 크롬 웹브라우저의 메모리가 과도하게 사용되고 있는 것이 나타났다. 이런 문제를 일반적으로 해결하는 방법은 웹브라우저를 변경하거나 웹브라우저 버전을 변경, 웹브라우저의 옵션을 변경, 예외처리, 메모리가 가득 차기 전에 웹브라우저를 quit()을 이용하여 닫고 새로 생성하는 것이 있다고 한다. 현재 필자의 크롬 웹브라우저 버전은 87.0.4280.88(64비트)이며 윈도우 10 프로 20H2를 사용하고 있다. 해결 방법을 찾게 되면 본 글에서 다시 서술하도록 하겠다.
728x90
반응형
'프로그래밍 언어 > C#' 카테고리의 다른 글
구글 블로거 API의 글 등록은 사용량에 제한이 있다. (0) | 2021.01.14 |
---|---|
[C#] HttpClient로 이미지를 받아서 저장하기 (0) | 2021.01.01 |
[C#] 셀레니움(Selenium)으로 크롬(Chrome)을 제어하자 (0) | 2020.12.25 |
[C#] 구글 블로거 API로 글 등록하는 법 (0) | 2020.12.23 |
[C#] 구글 블로거 API 라이브러리를 설치하는 법 (0) | 2020.12.23 |
댓글