Selenium 기본

2023. 4. 25. 08:43·python/python_selenium
# 직접 웹브라우저를 컨트롤하여 webscraping
# 현재 버전에 맞는 chrome driver.exe파일 다운로드해야됨
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys

# 현재 폴더에 있음 = ./, 적지 않아도 된다.
browser = webdriver.Chrome() #"./chromedriver.exe"
browser.get("<https://naver.com>")
# selenium 문법이 변경되었다.
# find_element_by_class_name 은 하단과 같이 명시되어야 함.
# 꼭 from selenium.webdriver.common.by import By 를 통해 by import
elem = browser.find_element(By.CLASS_NAME, "ico_naver")

elem.click() # 클릭
browser.back() # 뒤로가기
browser.forward() # 앞으로가기
browser.refresh() # 새로고침
elem.send_keys("나도코딩") # 텍스트 전송
# 아래를 위해서는 Keys를 import 해야한다.
elem.send_keys(Keys.ENTER) # ENTER 전송

# tag_name이 "a"인 element를 가져온다. (가장 첫번째)
elem = browser.find_element(By.TAG_NAME, "a") # TAG_NAME으로 찾아보기
# tag_name이 "a"인 element를 모두 가져온다.
elem = browser.find_elements(By.TAG_NAME, "a")

browser.get("<http://daum.net>")
elem = browser.find_element(By.NAME , "q") # NAME으로 찾아보기
elem.send_keys("나도코딩")
elem.send_keys(Keys.ENTER)
browser.back()
elem.send_keys("나도코딩") 
elem = browser.find_element(By.XPATH , '//*[@id="daumSearch"]\\
                            /fieldset/div/div/button[3]') # XPATH로 찾아보기
elem.click()
# 현재 있는 탭만 닫음
browser.close()
# 브라우저 전체를 종료
browser.quit()
  • from selenium.webdriver.common.by import By : find_element를 위한 패키지
  • from selenium.webdriver.common.keys import Keys : 키보드 전송을 위한 패키지
  • browser = webdriver.Chrome() 를 통해 반드시 `Chromedriver.exe`를 가져와야 한다.
  • browser.작업 (back, refresh, forward) 등을 통해 브라우저 조작 가능.
  • find_element(By , value) 를 통해서 element를 추출할 수 있다.
    ※ find_element_by_By~ 는 selenium업그레이드로 인해서 더이상 사용 X
    ㄴ ’WebDriver' object has no attribute 'find_element_by_class_name’ 얼럿이 나온다. 
    • By.ID : 태그의 id값으로 추출
    • By.NAME : 태그의 name값으로 추출
    • By.XPATH : 태그의 경로로 추출
    • By.LINK_TEXT : 링크 텍스트값으로 추출
    • By.PARTIAL_LINK_TEXT : 링크 텍스트의 자식 텍스트 값을 추출
    • By.TAG_NAME : 태그 이름으로 추출
    • By.CLASS_NAME : 태그의 클래스명으로 추출
    • By.CSS_SELECTOR : css선택자로 추출
  • element.작업(click, send_keys) 등을 통해 element에 작업 전송 가능
  • browser.close는 현재 있는 탭만 종료하고, browser.quit()는 브라우저 전체를 종료

'python > python_selenium' 카테고리의 다른 글

Selenium 활용1  (0) 2023.04.26
Selenium 심화  (0) 2023.04.25
CSV 기본  (0) 2023.04.23
BeautifulSoup4 활용3  (0) 2023.04.23
BeautifulSoup4 활용2  (0) 2023.04.22
'python/python_selenium' 카테고리의 다른 글
  • Selenium 활용1
  • Selenium 심화
  • CSV 기본
  • BeautifulSoup4 활용3
몽자비루
몽자비루
코딩공부 정리용 블로그입니다.
  • 몽자비루
    공부하는 블로그
    몽자비루
  • 전체
    오늘
    어제
    • 분류 전체보기 (165)
      • python (30)
        • python_selenium (16)
        • python_pygame (3)
      • appium (0)
      • 쿠버네티스 (60)
        • linux (8)
        • shell programming (8)
        • docker (18)
        • cka (23)
      • postman&API (16)
      • QA성장하기 (30)
        • 개발자에서 아키텍트로 스터디 (6)
        • 소프트웨어 공학 이해도 높이기 (6)
        • 테스팅 전문 지식 쌓기 (18)
      • 에러일기 (1)
      • AWS (27)
      • Jmeter (0)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    도커
    로스트아크
    API
    qa
    테스트 결과보고서
    k8s
    리눅스
    쿠버네티스
    사드웨어리소스
    .cpu
    로스트아크api
    vi에디터
    네트워크 테스트
    포스트맨
    application log
    스터디
    개발자에서아키텍트로
    공존성테스트
    테스트 계획서
    테스트 계획서 만들어보기
    python
    cka
    앱공존성
    linux
    postman
    LOSTARK
    테스트스크립트
    e2c
    애플리케이션로그
    QAKOREA
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
몽자비루
Selenium 기본
상단으로

티스토리툴바