[Python] 웹 자동화 기초 - 엘레먼트(클릭, 텍스트, 프레임 이동)

2022. 9. 29. 11:08·python/자동화
728x90
반응형

엘레먼트에 관하여

우리는 웹브라우저에서 로그인도 하고 버튼도 클릭하고 검색창에 텍스트를 입력하기도 한다. 이렇게 브라우저 상에서 보이는 버튼, 검색창, 사진, 테이블, 동영상 등등 이 모든 것들을 엘레먼트(element, 요소) 라고 부른다. 셀레니움은 우리가 브라우저에서 특정 요소를 클릭하고 텍스트를 입력하고 사진등을 받아오고 텍스트를 가져오는 등등 어떠한 위치에 있는 무언가를 부를 때 엘레먼트라는 개념으로 접근한다. 다양한 방법으로 엘레먼트로 접근할 수 있는데 대부분 xpath 를 사용한다.

엘레먼트 접근하는 방법

driver.find_element_by_xpath('/html/body/div[2]/div[2]/div[1]/div/div[3]/form/fieldset/button/span[2]') #xpath 로 접근
driver.find_element_by_class_name('ico_search_submit')  #class 속성으로 접근
driver.find_element_by_id('ke_kbd_btn') #id 속성으로 접근
driver.find_element_by_link_text('회원가입')    #링크가 달려 있는 텍스트로 접근
driver.find_element_by_css_selector('#account > div > a')   #css 셀렉터로 접근
driver.find_element_by_name('join') #name 속성으로 접근
driver.find_element_by_partial_link_text('가입')  #링크가 달려 있는 엘레먼트에 텍스트 일부만 적어서 해당 엘레먼트에 접근
driver.find_element_by_tag_name('input')    #태그 이름으로 접근

driver.find_element_by_tag_name('input').find_element_by_tag_name('a')  #input 태그 하위태그인 a 태그에 접근
driver.find_element_by_xpath('/html/body/div[2]/div[2]/div[1]/div/div[3]/form/fieldset/button/span[2]').find_element_by_name('join') #xpath 로 접근한 엘레먼트의 안에 join 이라는 속성을 가진 tag 엘레먼트에 접근

엘레먼트 클릭

driver.find_element_by_id('ke_kbd_btn').click()

텍스트 입력

driver.find_element_by_id('ke_awd2_btn').send_keys('텍스트 입력')

텍스트 삭제

driver.find_element_by_id('ke_awd2_btn').clear()

단축키 입력

from selenium.webdriver.common.keys import Keys

# 컨트롤+V
driver.find_element_by_id('ke_kbd_btn').send_keys(Keys.CONTROL + 'v')

# 다른 방법
from selenium.webdriver import ActionChains

ActionChains(driver).key_down(Keys.CONTROL).send_keys('V').key_up(Keys.CONTROL).perform() 
#위에서 driver 대신 엘리먼트를 입력해도 좋음. 

Frame 이동

#이동할 프레임 엘리먼트 지정
element = driver.find_element_by_tag_name('iframe')

#프레임 이동
driver.switch_to.frame(element)

#프레임에서 빠져나오기
driver.switch_to.default_content()

reference

https://pythondocs.net/selenium/%EC%85%80%EB%A0%88%EB%8B%88%EC%9B%80-%ED%81%AC%EB%A1%A4%EB%9F%AC-%EA%B8%B0%EB%B3%B8-%EC%82%AC%EC%9A%A9%EB%B2%95/

728x90
반응형

'python > 자동화' 카테고리의 다른 글

[Python] 네이버 뉴스 기사 태그 출력하기  (0) 2022.09.29
[Python] 웹 자동화 기초 - 경고창 이동, 쿠키, 자바스크립트 코드 실행  (1) 2022.09.29
[Python] 웹 자동화 기초 - 브라우저 열기, 닫기, 탭 이동  (0) 2022.09.29
[Python] 네이버 뉴스 기사 웹 크롤링 - 매크로  (0) 2022.09.28
[Python] 뉴스의 제목, 날짜, 본문 데이터 가져오기 - 1회성 (매크로아님)  (0) 2022.09.28
'python/자동화' 카테고리의 다른 글
  • [Python] 네이버 뉴스 기사 태그 출력하기
  • [Python] 웹 자동화 기초 - 경고창 이동, 쿠키, 자바스크립트 코드 실행
  • [Python] 웹 자동화 기초 - 브라우저 열기, 닫기, 탭 이동
  • [Python] 네이버 뉴스 기사 웹 크롤링 - 매크로
sillon
sillon
꾸준해지려고 합니다..
    반응형
  • sillon
    sillon coding
    sillon
  • 전체
    오늘
    어제
    • menu (614)
      • notice (2)
      • python (68)
        • 자료구조 & 알고리즘 (23)
        • 라이브러리 (19)
        • 기초 (8)
        • 자동화 (14)
        • 보안 (1)
      • coding test - python (301)
        • Programmers (166)
        • 백준 (76)
        • Code Tree (22)
        • 기본기 문제 (37)
      • coding test - C++ (5)
        • Programmers (4)
        • 백준 (1)
        • 기본기문제 (0)
      • 공부정리 (5)
        • 신호처리 시스템 (0)
        • Deep learnig & Machine lear.. (41)
        • Data Science (18)
        • Computer Vision (17)
        • NLP (40)
        • Dacon (2)
        • 모두를 위한 딥러닝 (강의 정리) (4)
        • 모두의 딥러닝 (교재 정리) (9)
        • 통계 (2)
      • HCI (23)
        • Haptics (7)
        • Graphics (11)
        • Arduino (4)
      • Project (21)
        • Web Project (1)
        • App Project (1)
        • Paper Project (1)
        • 캡스톤디자인2 (17)
        • etc (1)
      • OS (10)
        • Ubuntu (9)
        • Rasberry pi (1)
      • App & Web (9)
        • Android (7)
        • javascript (2)
      • C++ (5)
        • 기초 (5)
      • Cloud & SERVER (8)
        • Git (2)
        • Docker (1)
        • DB (4)
      • Paper (7)
        • NLP Paper review (6)
      • 데이터 분석 (0)
        • GIS (0)
      • daily (2)
        • 대학원 준비 (0)
      • 영어공부 (6)
        • job interview (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Python
    백준
    소수
    programmers
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
sillon
[Python] 웹 자동화 기초 - 엘레먼트(클릭, 텍스트, 프레임 이동)
상단으로

티스토리툴바