브라우저드라이버를 통해 유저의 interaction을 모방하여 동적페이지를
테스트 할 수 있는 라이브러리
pip install selenium
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
driver = webdriver.Chrome(executable_path='./chromedriver')
driver.get("https://www.billboard.com/charts/hot-100")
html = driver.page_source
위 코드에서 html 객체를 bs에 넘기면 bs로 크롤링이 가능하다driver.current_url
현재 페이지의 url을 리턴
driver.back()
뒤로가기
driver.forward()
앞으로가기
driver.refresh()
새로고침
WebDriver는 웹사이트에서 새로운 탭이나 새로운 창이 발생했을때
그 두가지를 구분하지 않고 고유 식별자를 가진 윈도우 핸들을 통해 접근한다
WebDriver는 새 탭, 새 창이 발생했을 때 이를 확인할 수 없다
그렇기 때문에 새 탭이 발생하고 focus를 옮기고 싶은경우 윈도우 핸들을 통해
navigate
driver.navegate().to("URL")
해당 URL로 이동
driver.switch_to.window(window_handle)
해당 윈도우 핸들로 이동
driver.current_window_handle
현재 페이지의 윈도우 핸들을 얻는다
len(driver.window_handles)
현재 활성화되어있는 탭 또는 창
driver.find_element_by_link_text("new window").click()
"new window"라는 링크 텍스트를 클릭
driver.execute_script("window.scrollTo(0, Y)")
정해진 값으로 scroll
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
페이지 최하단으로 scroll
driver.execute_script("window.scrollBy(0,1080);")
정해진 값 만큼 scroll