κΈ°λ³Έμ μΈ 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
ν΄λμ€λ₯Ό μ¬μ©νλ©΄ λ κ°κ²°νκ² μμλ₯Ό μ°Ύμ μ μμ΅λλ€.
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, λ©λͺ¨λ¦¬μ λΆνμν λ°μ΄ν°κ° λ¨μμλ νμ)λ₯Ό λ°©μ§νκ³ , λΈλΌμ°μ λ₯Ό κΉλνκ² μ’ λ£ν μ μμ΅λλ€.
Seleniumμμ μΉ νμ΄μ§λ₯Ό μ΄κΈ° μν΄ μ¬μ©νλ λ©μλλ send_keys
μ΄λ€.
Guidelines
AI Tutor
Publish
Design
Upload
Notes
Favorites
Help
Code Editor
Execution Result