본문 바로가기
JavaScript/CSS

selenium + nodeJS

본문

WebDriver의 객체관계도top

이번에는 스크린샷 기능만 배우지만 우선 이쯤에서 WebDriver와 그 관련된 클래스구조를 살펴보는 시간을 갖겠습니다. 우선 전체적인 구조는 다음과 같습니다.

Screenshot_1

  1. WebDriver의 manage, navigate, switchTo는 가각 관련된 인스턴스를 생성해 반환하게 됩니다.
  2. 이 서브객체들은 저마다의 역할을 수행하는데 Options나 TargetLocater는 거기서 다시 서브객체를 만들게 됩니다.

사정이 이렇다보니 하고 싶은 일이 있으면 driver.manage().window().setPosition(10,10) 이런 식으로 길게 체이닝이 되는 경우가 있는데 이 경우도

  1. options = driver.manage() 이고
  2. window = options.window() 로 다시 서브객체가 나오고 최종적으로
  3. window.setPosition(10, 10) 을 호출한 셈입니다.

3개로 시작된 driver의 메소드에서 꼬리에 꼬리를 물어 총 6개의 클래스와 연결 짓게 됩니다.

  1. Logs – 브라우저 로그를 가져옮
  2. Timeouts – 타임아웃과 관련된 정책을 세움
  3. Window – 브라우저를 통제함
  4. Navigation – 브라우저 네비게이션을 통제함
  5. TargetLocator – 현재 문서와 관련된 다른 창을 연결함
  6. Alert – 다이얼로그창을 제어함

이제 객체 관계도에 따라 각 클래스에 기술된 메소드 전체 목록을 적어봤습니다.

  • driver.manage() – Options객체를 반환합니다. Options객체는 아래와 같은 메소드를 제공합니다.
    1. addCookie({name,value,domain,path,expiry,secure,httpOnly}) – 쿠키를 추가합니다.
    2. deleteAllCookies() – 모든 쿠키를 삭제합니다.
    3. deleteCookie(name) – 특정 쿠키를 삭제합니다.
    4. getCookies() – then의 v로 쿠키배열을 반환하는데 각 배열요소는 {name,value,domain,path,expiry}형태의 오브젝트입니다.
    5. getCookie(name) – 특정 쿠키를 얻어옵니다. 위와 같고 단일오브젝트를 반환합니다.
    6. logs() – Logs객체를 반환합니다. 이 객체는 브라우저에서 console.log 등에 쓴 값을 가져옵니다.
      • get(type) – 해당 type에 대한 로그를 가져옵니다. 한 번 가져오면 그 뒤로는 새것만 가져옵니다.
      • getAvailableLogTypes() – 해당 브라우저가 지원하는 로그 타입을 배열로 반환합니다.
    7. timeouts() – Timeouts 객체를 반환합니다. 묵시적 대기를 설명할때 등장한 적이 있습니다. 메소드는 다음과 같습니다.
      • implicitlyWait(ms) – 묵지적 대기를 설정합니다.
      • setScriptTimeout(ms) – 브라우저 내의 스크립트 타입아웃값을 조정할 수 있습니다. 0이하가 되면 타임아웃이 없어집니다.
      • pageLoadTimeout(ms) – 페이지로딩을 위해 대기할 시간을 정할 수 있습니다.
    8. window() – Window객체를 반환합니다. 현재 브라우저 그 자체입니다.
      • getPosition() – 브라우저의 윈도우상 위치를 {x, y} 로 반환합니다.
      • setPosition(x, y) – 브라우저의 위치를 옮깁니다.
      • getSize() – 브라우저 크기를 {width, height}로 얻습니다.
      • setSize(width, height) – 브라우저의 크기를 조정합니다.
      • maximize() – 브라우저를 최대화합니다.
  • driver.navigate() – Navigation객체를 반환합니다. 이 객체는 back(), forward()와 같이 브라우저에서 버튼 네비게이션이 하는 일을 시킬 수 있습니다.
    1. to(url) – 특정 url로 이동시킵니다.
    2. back() – 뒤로가기
    3. forward() – 앞으로 가기
    4. refresh() – 리로딩
  • driver.switchTo() – 브라우저 내에서 제어권을 옯겨주는 TargetLocator객체를 반환합니다. 이를 통해 다이얼로그, 아이프레임, 팝업창 등으로 이동해다니면서 작업할 수 있습니다.
    1. activeElement() – 해당 창의 루트(doc 또는 doc.body 또는 doc.documentElement)웹엘리먼트를 반환합니다.
    2. defaultContent() – 원래 driver가 가리키던 창으로 제어를 되돌립니다.
    3. frame(id)- 지정한 프레임으로 제어권을 옮깁니다.
    4. window(nameOrHandle) – 지정한 윈도우로 제어권을 옮깁니다. 이때 이름은 팝업을 띄울 때 윈도우의 이름으로 지정한 값입니다.
    5. alert() – alert, confirm, prompt 등의 다이얼로그로 제어권을 옮깁니다. Alert객체를 반환합니다.
      • getText() – 다이얼로그의 텍스트값을 읽습니다.
      • authenticateAs(username, password) – 기본인증 등 인증창인 경우 아이디, 비번을 입력합니다.
      • accept() – 확인버튼을 누릅니다.
      • dismiss() – 취소버튼을 누릅니다.
      • sendKeys(text) – prompt 등에 텍스트값을 타이핑해줍니다.
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기

페이지 정보

최고관리자 작성일18-07-16 14:33 조회116회 댓글0건

첨부파일

댓글목록

등록된 댓글이 없습니다.

JavaScript/CSS 목록

게시물 검색

사이트 정보

  • 회사명 주인있소 / 대표 소담
  • 주소 강원도 속초시
  • 사업자 등록번호 123-45-67890
  • 전화 010-2026-0626 / 팩스 없음
  • 통신판매업신고번호 제 OO구 - 123호
  • 개인정보관리책임자 정보책임자명

고객센터

상단으로