반응형
자주 사용하지는 않지만 간혹 필요한 경우가 있어서 정리합니다.
제가 아는 건 3가지 방법입니다. 각 각의 방법에 대한 장단점을 사실 모르지만 필요에 따라 특징들을 함께 적어보겠습니다.
1. Chrome에 SendKeys 사용하여 키보드 입력 전달
2. Chrome에 TouchAction을 사용하여 화면 터치 입력 전달
3. JavaScript의 window.scrollBy를 활용하여 스크롤 변경
1번과 2번의 경우 흔히 우리가 사용하는 크롬의 형태와 동일하며
3번의 경우 해당 스크롤 양만큼 순간이동 하는 형태입니다.
1번 코드의 경우 SendKeys를 입력하는 방법 코드를 참조하시면 되겠습니다.
그중에 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 코드를 사용하는 형태가 있습니다.
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
반응형
'엑셀 > VBA' 카테고리의 다른 글
VBA 실행 , 계산 속도 빠르게 하기 - 엑셀 수동계산 (0) | 2023.10.21 |
---|---|
변수의 타입에 따라 조건 사용하기 (1) | 2023.10.08 |
VBA 배열 변수 지정 시 Index = 1 부터 시작하기 Option Base (0) | 2023.06.21 |
VBA Selenium에서 활성화 되는 Chrome 창 변경하기 (0) | 2023.04.01 |
VBA Selenium 크롤링에서 JavaScript 코드 사용하기 (0) | 2023.03.20 |
댓글