Chrome inspect 창에서 selenium headless session이 나오지 않는 문제 해결방법
DoDoBest
·2023. 6. 23. 15:08
Selenium headless로 파이썬 스크립트를 실행할 때, NoSuchElementException과 같은 에러로 멈추는 경우가 있다. 이때, chrome://inspect를 이용해서 에러가 발생한 페이지를 살펴볼 수 있다.
이전에는 종료된 원인이 모든 스크립트가 수행된 이후거나 Exception 일지라도 driver가 종료되지 않았기 때문에, inspect 창에 session 포트를 설정하면 페이지를 볼 수 있었다.
하지만 최근에는 driver가 종료되는 것이 기본값으로 변경된 것 같다. 그래서 예기치 않은 종료 혹은 정상적인 종료 후에 페이지를 확인하고 싶은 경우, 아래와 같이 detach 옵션을 True로 설정해줘야 한다.
options = webdriver.ChromeOptions()
options.add_argument('--headless=new')
# options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
# options.set_capability("detach", True) # debuggerAddress와 함께 사용
options.add_experimental_option("detach", True) # debuggerAddress 사용시 InvalidArgumentException 발생
...
driver = webdriver.Chrome(service=service, options=options)
debuggerAddress를 이용해서 이미 열린 창을 제어할 경우, set_capability를 이용해서 설정해야 detach가 정상 동작한다. add_experimental_option 사용시 아래와 같은 에러가 발생한다.
selenium.common.exceptions.InvalidArgumentException: Message: invalid argument: cannot parse capability: goog:chromeOptions
from invalid argument: unrecognized chrome option: detach
debuggerAddress를 이용하지 않는다면, add_experimental_option을 이용해서 설정해야 한다. set_capability를 이용하면 detach 설정이 적용되지 않는다.
driver.close() 명령어를 실행하면, detach 옵션과 무관하게 driver가 종료되기 때문에 session 포트로 페이지를 확인할 수 없다.
'기타' 카테고리의 다른 글
Leetcode 프리미엄 구매 (1) | 2023.11.26 |
---|---|
NVME SSD가 BIOS boot option에 인식되지 않는 경우 (0) | 2023.07.18 |
Linux python 3.9 설치 관련 오류 해결 모음 (0) | 2023.05.21 |
AWS EC2에서 Linux Python 버전 upgrade시 ssh 연결이 되지 않는 문제 해결방법 (0) | 2023.05.21 |
네이버클라우드플랫폼 서버 ssh 연결 시 server refused our key 오류 해결 (0) | 2023.01.30 |