selenium + nodeJS
페이지 정보
본문
WebDriver의 객체관계도top
이번에는 스크린샷 기능만 배우지만 우선 이쯤에서 WebDriver와 그 관련된 클래스구조를 살펴보는 시간을 갖겠습니다. 우선 전체적인 구조는 다음과 같습니다.
- WebDriver의 manage, navigate, switchTo는 가각 관련된 인스턴스를 생성해 반환하게 됩니다.
- 이 서브객체들은 저마다의 역할을 수행하는데 Options나 TargetLocater는 거기서 다시 서브객체를 만들게 됩니다.
사정이 이렇다보니 하고 싶은 일이 있으면 driver.manage().window().setPosition(10,10) 이런 식으로 길게 체이닝이 되는 경우가 있는데 이 경우도
- options = driver.manage() 이고
- window = options.window() 로 다시 서브객체가 나오고 최종적으로
- window.setPosition(10, 10) 을 호출한 셈입니다.
3개로 시작된 driver의 메소드에서 꼬리에 꼬리를 물어 총 6개의 클래스와 연결 짓게 됩니다.
- Logs – 브라우저 로그를 가져옮
- Timeouts – 타임아웃과 관련된 정책을 세움
- Window – 브라우저를 통제함
- Navigation – 브라우저 네비게이션을 통제함
- TargetLocator – 현재 문서와 관련된 다른 창을 연결함
- Alert – 다이얼로그창을 제어함
이제 객체 관계도에 따라 각 클래스에 기술된 메소드 전체 목록을 적어봤습니다.
- driver.manage() – Options객체를 반환합니다. Options객체는 아래와 같은 메소드를 제공합니다.
- addCookie({name,value,domain,path,expiry,secure,httpOnly}) – 쿠키를 추가합니다.
- deleteAllCookies() – 모든 쿠키를 삭제합니다.
- deleteCookie(name) – 특정 쿠키를 삭제합니다.
- getCookies() – then의 v로 쿠키배열을 반환하는데 각 배열요소는 {name,value,domain,path,expiry}형태의 오브젝트입니다.
- getCookie(name) – 특정 쿠키를 얻어옵니다. 위와 같고 단일오브젝트를 반환합니다.
- logs() – Logs객체를 반환합니다. 이 객체는 브라우저에서 console.log 등에 쓴 값을 가져옵니다.
- get(type) – 해당 type에 대한 로그를 가져옵니다. 한 번 가져오면 그 뒤로는 새것만 가져옵니다.
- getAvailableLogTypes() – 해당 브라우저가 지원하는 로그 타입을 배열로 반환합니다.
- timeouts() – Timeouts 객체를 반환합니다. 묵시적 대기를 설명할때 등장한 적이 있습니다. 메소드는 다음과 같습니다.
- implicitlyWait(ms) – 묵지적 대기를 설정합니다.
- setScriptTimeout(ms) – 브라우저 내의 스크립트 타입아웃값을 조정할 수 있습니다. 0이하가 되면 타임아웃이 없어집니다.
- pageLoadTimeout(ms) – 페이지로딩을 위해 대기할 시간을 정할 수 있습니다.
- window() – Window객체를 반환합니다. 현재 브라우저 그 자체입니다.
- getPosition() – 브라우저의 윈도우상 위치를 {x, y} 로 반환합니다.
- setPosition(x, y) – 브라우저의 위치를 옮깁니다.
- getSize() – 브라우저 크기를 {width, height}로 얻습니다.
- setSize(width, height) – 브라우저의 크기를 조정합니다.
- maximize() – 브라우저를 최대화합니다.
- driver.navigate() – Navigation객체를 반환합니다. 이 객체는 back(), forward()와 같이 브라우저에서 버튼 네비게이션이 하는 일을 시킬 수 있습니다.
- to(url) – 특정 url로 이동시킵니다.
- back() – 뒤로가기
- forward() – 앞으로 가기
- refresh() – 리로딩
- driver.switchTo() – 브라우저 내에서 제어권을 옯겨주는 TargetLocator객체를 반환합니다. 이를 통해 다이얼로그, 아이프레임, 팝업창 등으로 이동해다니면서 작업할 수 있습니다.
- activeElement() – 해당 창의 루트(doc 또는 doc.body 또는 doc.documentElement)웹엘리먼트를 반환합니다.
- defaultContent() – 원래 driver가 가리키던 창으로 제어를 되돌립니다.
- frame(id)- 지정한 프레임으로 제어권을 옮깁니다.
- window(nameOrHandle) – 지정한 윈도우로 제어권을 옮깁니다. 이때 이름은 팝업을 띄울 때 윈도우의 이름으로 지정한 값입니다.
- alert() – alert, confirm, prompt 등의 다이얼로그로 제어권을 옮깁니다. Alert객체를 반환합니다.
- getText() – 다이얼로그의 텍스트값을 읽습니다.
- authenticateAs(username, password) – 기본인증 등 인증창인 경우 아이디, 비번을 입력합니다.
- accept() – 확인버튼을 누릅니다.
- dismiss() – 취소버튼을 누릅니다.
- sendKeys(text) – prompt 등에 텍스트값을 타이핑해줍니다.
관련링크
댓글목록
등록된 댓글이 없습니다.