-
[Selenium] 요소 위치로 스크롤 이동하기Memo/Python 2023. 1. 25. 16:55
selenium으로 요소(element)를 클릭해야 하는 상황에서 다른 요소가 해당 위치를 가리고 있거나, 페이지 아래에 위치해 클릭이 되지 않는 경우가 있다.
이럴 때는 클릭하려는 요소가 가려지지 않도록, 스크롤을 해당 요소의 위치로 이동하면 해결할 수 있다.
그러나 스크롤을 요소의 위치로 이동하기 위해서 JavaScrip의 'scrollIntoView'를 사용하는데,
여기서 문제는 스크롤을 요소 최하단에 맞춰 이동한다는 것이다. 즉 이번에는 요소가 스크롤보다 위에 존재하여 동일하게 클릭을 할 수 없는 상황이다.
그래서 원하는 요소를 페이지 중앙에 위치 하도록 해야하는데, 이럴 때는 scrollIntoView에 옵션 하나를 추가하면 해결할 수 있다.
driver.execute_script("arguments[0].scrollIntoView({block: 'center'});", element)
이로써 클릭하려는 요소가 페이지 중앙에 위치하여 정상적으로 클릭할 수 있게 되었다.
Javascript scrollIntoView() middle alignment?
Javascript .scrollIntoView(boolean) provide only two alignment option. top bottom What if I want to scroll the view such that. I want to bring particular element somewhere in middle of the page?
stackoverflow.com
'Memo > Python' 카테고리의 다른 글
[Python] 텔레그램 API로 메시지 전송 방법 (마크다운, 이모지, 버튼) (0) 2023.02.13 [Django] 템플릿(html)에서 파이썬 enumerate 사용 (0) 2023.01.30 [Selenium] 결과 값 텍스트가 빈칸(공백)으로 리턴될 때 (0) 2023.01.18 [Selenium] 코드 실행 후 브라우저가 자동으로 종료될 때 (0) 2023.01.17 [Selenium] 클릭 시 element not interactable 에러 (0) 2023.01.17