Selenium 사용 - Webelement (2)

4793 단어 selenium
전편 블로그에서find로...지정한 요소를 찾는 방법입니다. 찾은 요소는 Webelement 대상입니다.이 대상도 매우 실용적인 방법이 많다.다음은 자주 쓰는 것을 소개하겠습니다.

메서드

  • clear()비우기
  • 현재 요소에 텍스트가 있으면 텍스트를 비웁니다.
  • click()클릭
  • 현재 요소 클릭
  • get_attribute(name) 속성 획득
  • 원소의attribute/property를 가져오면 속성 이름과 일치하는 값을 우선적으로 되돌려줍니다. 존재하지 않으면 속성 이름에name가 포함된 값을 되돌려줍니다.
  • send_keys(value) 아날로그 입력 요소
  • 현재 요소에 대한 아날로그 입력
  • submit()제출표
  • 양식 제출
  • find_elements_by_* 등 검색 방법
  • 찾은 요소는 중첩하여 사용할 수도 있고 다시 안으로 찾을 수도 있다.

    등록 정보

  • text

  • 현재 요소의 텍스트 내용 가져오기
  • tag_name

  • 현재 요소의 태그 이름 가져오기
  • size

  • 현재 요소 크기 가져오기
  • rect

  • 현재 요소의 크기와 위치를 포함하는 사전 가져오기
  • parent

  • 현재 요소의 부모 노드 가져오기
  • location

  • 현재 요소의 위치

    Keys


    우리는 보통 값을 입력할 때 send_keys() 방법으로 입력할 문자열을 입력하면 되는 시뮬레이션 키보드의 입력이 자주 필요하다.그러나 우리는 때때로 특수한 버튼을 사용하는데, 이럴 때는 우리의 Keys를 사용해야 한다.
  • 단축키 예
  • from selenium.webdriver.common.keys import Keys
    
    elem.send_keys(Keys.RETURN)
  • 콤보 버튼
  • 때때로 우리는 여러 개의 버튼에 조합된 버튼을 사용해야 한다. 예를 들어ctrl+a를 사용하면 매개 변수에서 순서대로 전송하면 된다.
    from selenium.webdriver.common.keys import Keys
    
    elem.send_keys(Keys.CONTROL, 'a')

    Keys 속성


    Keys류에는 많은 속성이 있는데 각 속성은 버튼에 대응한다.모든 속성은 다음과 같습니다.
    ADD = u'\ue025'
    ALT = u'\ue00a'
    ARROW_DOWN = u'\ue015'
    ARROW_LEFT = u'\ue012'
    ARROW_RIGHT = u'\ue014'
    ARROW_UP = u'\ue013'
    BACKSPACE = u'\ue003'
    BACK_SPACE = u'\ue003'
    CANCEL = u'\ue001'
    CLEAR = u'\ue005'
    COMMAND = u'\ue03d'
    CONTROL = u'\ue009'
    DECIMAL = u'\ue028'
    DELETE = u'\ue017'
    DIVIDE = u'\ue029'
    DOWN = u'\ue015'
    END = u'\ue010'
    ENTER = u'\ue007'
    EQUALS = u'\ue019'
    ESCAPE = u'\ue00c'
    F1 = u'\ue031'
    F10 = u'\ue03a'
    F11 = u'\ue03b'
    F12 = u'\ue03c'
    F2 = u'\ue032'
    F3 = u'\ue033'
    F4 = u'\ue034'
    F5 = u'\ue035'
    F6 = u'\ue036'
    F7 = u'\ue037'
    F8 = u'\ue038'
    F9 = u'\ue039'
    HELP = u'\ue002'
    HOME = u'\ue011'
    INSERT = u'\ue016'
    LEFT = u'\ue012'
    LEFT_ALT = u'\ue00a'
    LEFT_CONTROL = u'\ue009'
    LEFT_SHIFT = u'\ue008'
    META = u'\ue03d'
    MULTIPLY = u'\ue024'
    NULL = u'\ue000'
    NUMPAD0 = u'\ue01a'
    NUMPAD1 = u'\ue01b'
    NUMPAD2 = u'\ue01c'
    NUMPAD3 = u'\ue01d'
    NUMPAD4 = u'\ue01e'
    NUMPAD5 = u'\ue01f'
    NUMPAD6 = u'\ue020'
    NUMPAD7 = u'\ue021'
    NUMPAD8 = u'\ue022'
    NUMPAD9 = u'\ue023'
    PAGE_DOWN = u'\ue00f'
    PAGE_UP = u'\ue00e'
    PAUSE = u'\ue00b'
    RETURN = u'\ue006'
    RIGHT = u'\ue014'
    SEMICOLON = u'\ue018'
    SEPARATOR = u'\ue026'
    SHIFT = u'\ue008'
    SPACE = u'\ue00d'
    SUBTRACT = u'\ue027'
    TAB = u'\ue004'
    UP = u'\ue013'

    예1


    이 예는 기점망의 첫 페이지를 열고 입력 상자에 서유기를 입력하고 리턴 버튼을 누르는 것이다.
    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    from selenium.webdriver.common.keys import Keys
    import time
    
    
    #  Chrome 
    options = Options()
    options.add_argument('--window-size=1000,700')
    options.add_argument('--disable-infobars')
    options.add_argument('--incognito')
    driver = webdriver.Chrome(chrome_options = options)
    #  
    driver.get('https://www.qidian.com/')
    time.sleep(1)
    input = driver.find_element_by_xpath('//*[@id="s-box"]')
    input.send_keys(' ')
    time.sleep(1)
    input.send_keys(Keys.ENTER)
    time.sleep(1)
    time.sleep(7)
    driver.quit()

    예2


    이 예는 기점망의 첫 페이지를 열고 로그인을 클릭한 다음에 로그인 인터페이스의 계정 입력 상자에 일련의 숫자를 입력한다.이곳의 로그인 인터페이스는 첫 페이지의 한 글자 구조이기 때문에 프레임을 전환하는 것을 기억해야 한다.
    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    import time
    
    
    #  Chrome 
    options = Options()
    options.add_argument('--window-size=1000,700')
    options.add_argument('--disable-infobars')
    options.add_argument('--incognito')
    driver = webdriver.Chrome(chrome_options = options)
    #  
    driver.get('https://www.qidian.com/')
    time.sleep(1)
    login = driver.find_element_by_xpath('//*[@id="login-btn"]')
    login.click()
    time.sleep(1)
    iframe = driver.find_element_by_xpath('//*[@id="loginIfr"]')
    driver.switch_to.frame(iframe)
    input = driver.find_element_by_xpath('//*[@id="username"]')
    input.send_keys('1501168759')
    
    time.sleep(5)
    driver.quit()

    좋은 웹페이지 즐겨찾기