Guidelines

기본적인 Selenium λ©”μ„œλ“œμ™€ ν™œμš©λ²•

이번 μˆ˜μ—…μ—μ„œλŠ” Seleniumμ—μ„œ 자주 μ‚¬μš©λ˜λŠ” λͺ‡ 가지 핡심 λ©”μ„œλ“œλ₯Ό μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€.


μ›Ή νŽ˜μ΄μ§€λ₯Ό μ—¬λŠ” get

Seleniumμ—μ„œ get λ©”μ„œλ“œλŠ” νŠΉμ • URL둜 μ΄λ™ν•˜λŠ” κ°€μž₯ 기본적인 λ©”μ„œλ“œμž…λ‹ˆλ‹€.

λΈŒλΌμš°μ € μ£Όμ†Œμ°½μ— URL을 μž…λ ₯ν•˜κ³  μ—”ν„°λ₯Ό λˆ„λ₯΄λŠ” 것과 같은 λ™μž‘μ„ μˆ˜ν–‰ν•©λ‹ˆλ‹€.

μ›Ή νŽ˜μ΄μ§€ μ—΄κΈ° μ˜ˆμ‹œ
from selenium import webdriver # Chrome μ›Ή λ“œλΌμ΄λ²„ 생성 driver = webdriver.Chrome() # νŠΉμ • URL둜 이동 driver.get("https://www.example.com") # νŽ˜μ΄μ§€ 타이틀 좜λ ₯ print(driver.title)

νŠΉμ • μš”μ†Œλ₯Ό μ°ΎλŠ” find_element

μ›Ή νŽ˜μ΄μ§€μ—μ„œ νŠΉμ • HTML μš”μ†Œλ₯Ό 찾을 λ•ŒλŠ” find_element λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄ HTML μš”μ†Œμ˜ ID, 클래슀 이름, HTML νƒœκ·Έ 이름, XPath 등을 ν™œμš©ν•΄ νŠΉμ • HTML μš”μ†Œλ₯Ό 찾을 수 μžˆμŠ΅λ‹ˆλ‹€.

μ°Έκ³  : XPathλŠ” νŠΉμ • μš”μ†Œλ‚˜ 속성을 μ„ νƒν•˜λŠ” 데 μ‚¬μš©ν•˜λŠ” 경둜 ν‘œν˜„ μ–Έμ–΄μž…λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ //h1λŠ” νŽ˜μ΄μ§€ λ‚΄ λͺ¨λ“  h1 μš”μ†Œλ₯Ό, //button[@id='exampleId']λŠ” IDκ°€ exampleId인 button μš”μ†Œλ₯Ό μ°ΎμŠ΅λ‹ˆλ‹€.


μ›Ή μš”μ†Œ μ°ΎκΈ° μ˜ˆμ‹œ
# ID둜 μš”μ†Œ μ°ΎκΈ° # find_element("id", "μš”μ†Œ ID") element = driver.find_element("id", "exampleId") # 클래슀 μ΄λ¦„μœΌλ‘œ μš”μ†Œ μ°ΎκΈ° # find_element("class name", "클래슀 이름") element = driver.find_element("class name", "exampleClass") # HTML νƒœκ·Έ μ΄λ¦„μœΌλ‘œ μš”μ†Œ μ°ΎκΈ° # find_element("tag name", "HTML νƒœκ·Έ 이름") element = driver.find_element("tag name", "button") # XPath둜 μš”μ†Œ μ°ΎκΈ° # find_element("xpath", "XPath ν‘œν˜„μ‹") element = driver.find_element("xpath", "//button[@id='exampleId']")

Seleniumμ—μ„œ μ œκ³΅ν•˜λŠ” By 클래슀λ₯Ό μ‚¬μš©ν•˜λ©΄ 더 κ°„κ²°ν•˜κ²Œ μš”μ†Œλ₯Ό 찾을 수 μžˆμŠ΅λ‹ˆλ‹€.

By 클래슀λ₯Ό μ‚¬μš©ν•œ μš”μ†Œ μ°ΎκΈ° μ˜ˆμ‹œ
from selenium.webdriver.common.by import By # ID둜 μš”μ†Œ μ°ΎκΈ° element = driver.find_element(By.ID, "exampleId") # 클래슀 μ΄λ¦„μœΌλ‘œ μš”μ†Œ μ°ΎκΈ° element = driver.find_element(By.CLASS_NAME, "exampleClass") # νƒœκ·Έ μ΄λ¦„μœΌλ‘œ μš”μ†Œ μ°ΎκΈ° element = driver.find_element(By.TAG_NAME, "button") # XPath둜 μš”μ†Œ μ°ΎκΈ° element = driver.find_element(By.XPATH, "//button[@id='exampleId']")

μ„ νƒν•œ μš”μ†Œμ—μ„œ ν…μŠ€νŠΈλ₯Ό μΆ”μΆœν•˜λ €λ©΄ text 속성을 μ‚¬μš©ν•©λ‹ˆλ‹€.

μš”μ†Œμ˜ ν…μŠ€νŠΈ μΆ”μΆœ μ˜ˆμ‹œ
# μš”μ†Œμ˜ ν…μŠ€νŠΈ μΆ”μΆœ element_text = element.text # μΆ”μΆœν•œ ν…μŠ€νŠΈ 좜λ ₯ print(element_text)

HTML μš”μ†Œλ₯Ό ν΄λ¦­ν•˜λŠ” click

μ›Ή νŽ˜μ΄μ§€μ—μ„œ νŠΉμ • HTML μš”μ†Œλ₯Ό 클릭할 λ•ŒλŠ” click λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.

λ²„νŠΌ 클릭 μ˜ˆμ‹œ
# 찾은 μš”μ†Œ 클릭 element.click()

예λ₯Ό λ“€μ–΄ 둜그인 λ²„νŠΌμ„ μžλ™μœΌλ‘œ ν΄λ¦­ν•˜κ±°λ‚˜, νŠΉμ • 링크λ₯Ό λ”°λΌκ°€λŠ” μž‘μ—…μ„ Selenium으둜 μ²˜λ¦¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€.


ν…μŠ€νŠΈλ₯Ό μž…λ ₯ν•˜λŠ” send_keys

μž…λ ₯ ν•„λ“œμ— ν…μŠ€νŠΈλ₯Ό μžλ™μœΌλ‘œ μž…λ ₯ν•˜λ €λ©΄ send_keys λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.

이 λ©”μ„œλ“œλŠ” μ‚¬μš©μžκ°€ ν‚€λ³΄λ“œλ‘œ μž…λ ₯ν•˜λŠ” κ²ƒμ²˜λŸΌ ν…μŠ€νŠΈλ₯Ό μž…λ ₯ν•©λ‹ˆλ‹€.

ν…μŠ€νŠΈ μž…λ ₯ μ˜ˆμ‹œ
# μž…λ ₯ ν•„λ“œμ— ν…μŠ€νŠΈ μž…λ ₯ element.send_keys("Hello, World!")

둜그인 폼에 ID와 λΉ„λ°€λ²ˆν˜Έλ₯Ό μž…λ ₯ν•˜λŠ” 것과 같은 μž‘μ—…μ„ μžλ™ν™”ν•  λ•Œ 맀우 μœ μš©ν•©λ‹ˆλ‹€.


μ›Ή νŽ˜μ΄μ§€ λ‹«κΈ°

λΈŒλΌμš°μ €λ₯Ό λ‹«λŠ” quit

λͺ¨λ“  μž‘μ—…μ„ 마친 ν›„ λΈŒλΌμš°μ €λ₯Ό μ’…λ£Œν•˜κ³  μ‹Άλ‹€λ©΄ quit λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.

quit λ©”μ„œλ“œλŠ” μ—΄λ € μžˆλŠ” λͺ¨λ“  λΈŒλΌμš°μ € 창을 λ‹«κ³  WebDriver μ„Έμ…˜μ„ μ’…λ£Œν•©λ‹ˆλ‹€.

λΈŒλΌμš°μ € λ‹«κΈ° μ˜ˆμ‹œ
# λΈŒλΌμš°μ € μ’…λ£Œ driver.quit()

μ΄λ ‡κ²Œ ν•˜λ©΄ λ©”λͺ¨λ¦¬ λˆ„μˆ˜(Memory Leak, λ©”λͺ¨λ¦¬μ— λΆˆν•„μš”ν•œ 데이터가 λ‚¨μ•„μžˆλŠ” ν˜„μƒ)λ₯Ό λ°©μ§€ν•˜κ³ , λΈŒλΌμš°μ €λ₯Ό κΉ”λ”ν•˜κ²Œ μ’…λ£Œν•  수 μžˆμŠ΅λ‹ˆλ‹€.

Mission
0 / 1

Seleniumμ—μ„œ μ›Ή νŽ˜μ΄μ§€λ₯Ό μ—΄κΈ° μœ„ν•΄ μ‚¬μš©ν•˜λŠ” λ©”μ„œλ“œλŠ” send_keys이닀.

O
X

Guidelines

AI Tutor

Publish

Design

Upload

Notes

Favorites

Help

Code Editor

Run
Generate

Execution Result