본문 바로가기
엑셀/VBA

VBA Selenium에서 스크롤 이동

by 큐브빌드 2023. 7. 10.
반응형

자주 사용하지는 않지만 간혹 필요한 경우가 있어서 정리합니다.

 

제가 아는 건 3가지 방법입니다. 각 각의 방법에 대한 장단점을 사실 모르지만 필요에 따라 특징들을 함께 적어보겠습니다.

 

1. Chrome에 SendKeys 사용하여 키보드 입력 전달
2. Chrome에 TouchAction을 사용하여 화면 터치 입력 전달
3. JavaScript의 window.scrollBy를 활용하여 스크롤 변경

 

1번과 2번의 경우 흔히 우리가 사용하는 크롬의 형태와 동일하며 

3번의 경우 해당 스크롤 양만큼 순간이동 하는 형태입니다.

 

1번 코드의 경우 SendKeys를 입력하는 방법 코드를 참조하시면 되겠습니다.

https://downupup.tistory.com/entry/VBA-%ED%81%AC%EB%A1%A4%EB%A7%81-Selenium-%ED%82%A4%EB%B3%B4%EB%93%9C-%EC%9E%85%EB%A0%A5-%EB%B0%A9%EB%B2%95-Sendkeys

 

VBA 크롤링 Selenium 키보드 입력 방법 Sendkeys

VBA에서 Chrome으로 크롤링 하기 - Selenium (tistory.com) VBA에서 Chrome으로 크롤링 하기 - Selenium InternetExplorer로 크롤링을 하던 중 더 이상 업데이트도 되지 않고 적용이 되지 않는 사이트도 많네요 그래

downupup.tistory.com

그중에 End , Home , PageDown , PageUp , Arrow를 사용하면 흔히 컴퓨터에서 Chrome 사용할 때와 동일하게 처리됩니다.

 

2번 코드의 경우 TouchAction 코드입니다.

쉽게 생각해서 핸드폰 모바일에서 액정을 터치한 뒤 드래그 하는 형태에 가깝다고 생각하시면 됩니다.

위 이미지와 같이 이렇게 작성될 수 있습니다.

xoffset의 경우 가로

yoffset의 경우 세로 

입니다.

Sub t()
Dim sel As New Selenium.ChromeDriver

sel.Get 'URL 주소

sel.TouchScreen.Scroll 0 , 500 '500만큼 아래쪽으로 내려가게 됨
End Sub

 

3번 코드의 경우 JavaScript의 코드를 불러와서 적용합니다.

이것 또한 Selenium에서 JavaScript 코드를 사용하는 형태가 있습니다.

https://downupup.tistory.com/entry/VBA-Selenium-%ED%81%AC%EB%A1%A4%EB%A7%81%EC%97%90%EC%84%9C-JavaScript-%EC%BD%94%EB%93%9C-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0

 

VBA Selenium 크롤링에서 JavaScript 코드 사용하기

Python으로 Selenium을 사용하던 VBA에서 Selenium을 사용하건 틀림없이 필요에 의해서 JavaScript 코드를 함께 사용하면 편리한 순간이 오는 것 같습니다. 그래서 한번 VBA Selenium에서 JavaScript 코드를 사용

downupup.tistory.com

 

ExecuteScript가 JavaScript 코드를 사용할 수 있는 함수입니다.

그래서 JavaScript 코드 중 윈도 스크롤을 이동할 수 있는 window.scrollBy(가로, 세로)를 사용합니다.

 

여기서 중요한 부분은 

대, 소문자 구분을 합니다.

By에서 B만 대문자입니다.


Sub t()
Dim sel As New Selenium.ChromeDriver

sel.Get 'URL 주소

sel.ExecuteScript "window.scrollBy(0, 500)"
End Sub
반응형

댓글