selenium

Jinhyeon Son·2020년 4월 16일
0

정리

목록 보기
12/17

selenium

브라우저드라이버를 통해 유저의 interaction을 모방하여 동적페이지를
테스트 할 수 있는 라이브러리

init

  1. 다음 터미널 명령어를 실행하여 python에 selenium패키지를 설치한다
    pip install selenium
  2. 셀레니움을 통해 동작시킬 웹 드라이버를 다운받는다
    ex) chrome, mozilla, opera, safari, edge
  3. selinium을 import한다
    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
  4. webdriver를 할당하고 원하는 페이지에 request를 보낸다
    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()

    	새로고침

window handle

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"라는 링크 텍스트를 클릭

page scroll

  • 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

0개의 댓글