Python

[Selenium] Selenium 창 크기(윈도우 사이즈) 조절하기

메바동 2022. 4. 1. 14:02
728x90

2021. 12. 01.에 작성한 [Python] Selenium을 이용한 스크린샷 저장하기

 

라고 하였지만 회사에서 쏠쏠하게 사용하고 있다.

 

한 번에 2,000개 정도의 스크린샷을 찍어놓도록 하고 있어 Selenium 옵션에 --headless를 주어 Headless 모드로 스크린샷을 저장하고 있는데 driver에 maximize_window()를 해주어도 800x600 사이즈의 크기로 스크린샷이 찍히고 있었다.

작은 사이즈로 스크린샷이 저장되고 있어 일부 사이트에서 잘리는 부분이 나와 창 크기를 조절하기로 하였다.

 

1. driver option을 이용하여 창 크기(윈도우 사이즈) 조절하기

options = webdriver.ChromeOptions()
... 기타 옵션
options.add_argument('--headless')
options.add_argument('window-size={width},{height}')

driver = webdriver.Chrome({chromedriver path},options=options)

 

위처럼 driver의 option을 줄 때 add_argument('window-size={너비}, {높이}')를 설정해주면 원하는 크기의 사이즈를 열 수 있다.

 

 

 

2. driver.set_window_size()를 이용하여 창 크기(윈도우 사이즈) 조절하기

driver = webdriver.Chrome({chromedriver path},options=options)
driver.set_window_size({width}, {height})

 

다른 방법으로는 driver의 set_window_size()를 사용하여 창 크기를 변경할 수 있다.

사용 중 창 크기를 조절해야 하는 경우에는 이 방법을 이용하면 좋을 것 같다.

 

 

 

참고로 Headless 모드를 이용하면 좋은 점이 하나 있는데 창 크기를 1280x720 사이즈로 스크린샷을 저장한다고 하였을 때 Headless가 아닌 경우에는

 

 

탭들과 스크롤바의 사이즈도 창 크기에 들어가기 때문에 찍힌 스크린샷의 크기가 1280x720가 아닌 탭과 스크롤바 부분이 제외된 크기의 스크린샷이 찍히게 된다.

 

 

반면 Headless 모드를 사용하게 되면 지정한 크기의 스크린샷을 얻을 수 있다.

 

또한 크기의 제한이 없어

 

 

이런 극단적인 크기의 스크린샷도 찍을 수 있게 된다.

728x90