안규 공부방

Python 프로그래밍 > Selenium으로 DOM요소를 선택하는 방법

등록일 : 2018-07-02 16:51 조회수 : 96,281

1. DOM 내부에 있는 여러개의 요소들 중에서 처음 찾아지는 요소를 추출하는 메소드
   
    find_element_by_id(id)   id 속성으로 요소를 하나 추출한다.
    find_element_by_name(name)  name속성으로 요소를 하나 추출한다.
    find_element_by_css_selector(query) CSS 선택자로 요소를 하나 추출한다.
    find_element_by_xpath(query)  XPath를 지정해 요소를 하나 추출한다.
    find_element_by_tag_name(name)  태그 이름이 name에 해당하는 요소를 하나 추출한다.
    find_element_by_link_text(text)  링크 텍스트로 요소를 하나 추출한다.
    find_element_by_partial_link_text(text) 링크의 자식요소에 포함돼 있는 텍스트로 요소를 하나 추출한다.
    find_element_by_class_name(name)  클래스 이름이 name에 해당하는 요소를 하나 추출한다.

2. DOM 내부에 있는 여러개의 요소들을 모두 추출하는 메소드
    find_elements_by_css_selector(query)
    find_elements_by_xpath(query)
    find_elements_by_tag_name(name)
    find_elements_by_class_name(name)
    find_elements_by_partial_link_text(text)
   
    위의 메소드를 이용해서 어떠한 요소도 찾지 못하는 경우에 발생하는 예외는  NoSuchElementException

3. DOM 요소에 적용할 수 있는 메소드
    clear()  :  글자를 입력할 수 있는 요소의 글자를 지운다.
    click()   : 요소를 클릭한다. 
    get_attribute(name)  : 요소의 속성 중에 name에 해당되는 속성의 값을 추출한다.
    is_displayed()  : 요소가 화면에 출력되는지 확인한다.
    is_enabled()  : 요소가 활성화 되었는지 확인한다.
    is_selected()  :  체크박스 등의 요소가 선택 상태인지 확인한다.
    screenshot(filename)  : 화면을 캡처해서 filename으로 저장한다.
    send_keys(value)  : 키를 입력한다. 일반적으로 text 데이터를 보낸다.
   
     >>  value가 텍스트 데이터가 아닌 경우 (특수키:방향키, 펑션키(f1, f2, f3 .... f12), Enter, Tab, Control,...)
         즉, 특수키를 사용해야 하는 경우에는 별도의 모듈을 사용해야한다.
         from selenium.Webdriver.common.keys import Keys
         방향키 : ARROW_DOWN / ARROW_LEFT / ARROW_RIGHT / ARROW_UP
         BACKSPACE / DELETE / HOME / END / INSERT
         ALT / COMMAND / CONTROL / SHIFT
         ENTER / ESCAPE / SPACE / TAB
         F1 / F2 / F3 / F4 ..... / F12
    
    submit()  :  입력 양식을 전송한다.
    value_of_css_property(name) : name에 해당하는 CSS 속성 값을 추출한다.
   
4.  DOM 요소에 적용할 수 있는 속성
    id   :  요소의 id 속성
    location  : 요소의 위치
    parent  :  부모 요소
    rect  :  크기와 위치정보를 가진 딕셔너리 자료형을 리턴한다.
    screenshot_as_base64  : 스크린샷을 base64형태로 추출한다.
    screenshot_as_png  : 스크린샷을 PNG형식의 바이너리로 추출한다.
    size  :   요소의 크기
    tag_name :  태그이름
    text :   요소내부의 글자 
    ////////// PhantomJS 용 메서드와 속성 ///////////////
    add_cookie(cookie_dict)   쿠키 값을 딕셔너리 형식으로 지정
   
       >> driver.add_cookie({'name':'kim', 'value':'test'})
           driver.add_cookie({'name':'kim', 'value':'test', 'path':'/')}
           driver.add_cookie({'name':'kim', 'value':'test', 'path':'/', 'secure':True})

    back() /forward()  : 이전 페이지 또는 다음 페이지로 이동
    close()  :  브라우저를 닫다
    current_url  : 현재 url 을 추출한다.
    delete_all_cookies()  : 모든 쿠키를 제거한다.
    delete_cookie(name)  : 특정 쿠키를 제거한다.
    get_cookie(name)  : 특정 쿠키를 읽는다.
    get_cookies()  : 모든 쿠키 값을 추출한다.
    execute(command, params) : 브라우저의 고유 명령어를 실행
    get(url) :  웹 페이지를 읽어들인다.
    get_screenshot_as_file(filename) : 스크린샷을 파일로 저장
    get_screenshot_as_png  : PNG형식으로 스크린샷의 바이너리 추출
    save_screenshot(filename) : 스크린샷을 저장
    implicitly_wait(sec)  : 최대 대기시간을 초 단위로 지정해서 처리가 끝날 때 까지 대기
    quit()   :  드라이버를 종료시켜서 브라우저를 닫는다.
    title  :  현재 페이지의 타이틀을 추출
※ 혹시 도움이 되셨다면 댓글에 한마디 남겨주세요!
작성자   비밀번호
자동글 방지     (자동글 방지 기능입니다.)
내용   댓글달기 
이메일 문의 : cak0280@nate.com  
Copyright 2000 By ENTERSOFT.KR All Rights Reserved.