본문 바로가기
코딩자료/프로그램

WebDriver 명령어 사용법 및 설명

Published Date:2024. 4. 25.
openipc.kr

파이썬 WebDriver 명령어 사용법 및 설명

파이썬 Selenium WebDriver는 웹 브라우저를 자동화하기 위한 강력한 도구입니다. 다양한 명령어를 사용하여 웹 페이지와 상호작용하고 테스트를 수행할 수 있습니다


1.자주 사용되는 명령어

driver.get(url): 지정된 URL로 웹 페이지를 엽니다.
driver.title: 현재 페이지의 제목을 가져옵니다.
driver.current_url: 현재 페이지의 URL을 가져옵니다.
driver.page_source: 현재 페이지의 HTML 소스 코드를 가져옵니다.
driver.close(): 현재 브라우저 창을 닫습니다.
driver.quit(): 모든 브라우저 창을 닫고 WebDriver 세션을 종료합니다.


2.요소 찾기

find_element(By.ID, "id"): ID로 요소를 찾습니다.
find_element(By.NAME, "name"): name 속성으로 요소를 찾습니다.
find_element(By.CLASS_NAME, "class"): 클래스 이름으로 요소를 찾습니다.
find_element(By.TAG_NAME, "tag"): 태그 이름으로 요소를 찾습니다.
find_element(By.LINK_TEXT, "text"): 링크 텍스트로 요소를 찾습니다.
find_element(By.PARTIAL_LINK_TEXT, "text"): 부분 링크 텍스트로 요소를 찾습니다.
find_element(By.XPATH, "xpath"): XPath 표현식으로 요소를 찾습니다.
find_element(By.CSS_SELECTOR, "css"): CSS 선택자로 요소를 찾습니다.


3.요소와 상호작용

element.click(): 요소를 클릭합니다.
element.send_keys("text"): 요소에 텍스트를 입력합니다.
element.clear(): 요소의 내용을 지웁니다.
element.text: 요소의 텍스트를 가져옵니다.
element.is_displayed(): 요소가 표시되는지 확인합니다.
element.is_enabled(): 요소가 활성화되어 있는지 확인합니다.
element.is_selected(): 요소가 선택되어 있는지 확인합니다.

4. 대기

time.sleep(seconds): 지정된 시간 동안 대기합니다.
WebDriverWait(driver, timeout): 요소가 나타날 때까지 또는 시간 초과될 때까지 대기합니다.
JavaScript 실행
driver.execute_script(script, *args): JavaScript 코드를 실행합니다.


예제 1)  자주 사용되는 명령어

 

예시

from selenium import webdriver

# Chrome WebDriver 객체 생성
driver = webdriver.Chrome()

# Google 홈페이지 URL
url = "https://www.google.com/"

# 1. driver.get(url): 지정된 URL로 웹 페이지를 엽니다.
driver.get(url)  # Google 홈페이지 열기

# 2. driver.title: 현재 페이지의 제목을 가져옵니다.
title = driver.title
print("페이지 제목:", title)  # "Google" 출력

# 3. driver.current_url: 현재 페이지의 URL을 가져옵니다.
current_url = driver.current_url
print("현재 URL:", current_url)  # "https://www.google.com/" 출력

# 4. driver.page_source: 현재 페이지의 HTML 소스 코드를 가져옵니다.
# (출력 내용이 길기 때문에 주석 처리)
# page_source = driver.page_source
# print("페이지 소스 코드:", page_source)

# 5. driver.close(): 현재 브라우저 창을 닫습니다.
driver.close()  # 현재 탭/창 닫기

# 6. driver.quit(): 모든 브라우저 창을 닫고 WebDriver 세션을 종료합니다.
# (이미 창이 닫혔으므로 주석 처리)
# driver.quit()


예제 2) 요소 찾기

 

 예시

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get("https://www.example.com/")  # 예시 페이지로 대체 필요

# 1. find_element(By.ID, "id") - ID로 요소 찾기
element_by_id = driver.find_element(By.ID, "element-id")  # "element-id"로 요소 찾기

# 2. find_element(By.NAME, "name") - name 속성으로 요소 찾기
element_by_name = driver.find_element(By.NAME, "element-name")  # "element-name"으로 요소 찾기

# 3. find_element(By.CLASS_NAME, "class") - 클래스 이름으로 요소 찾기
element_by_class = driver.find_element(By.CLASS_NAME, "element-class")  # "element-class"로 요소 찾기

# 4. find_element(By.TAG_NAME, "tag") - 태그 이름으로 요소 찾기
element_by_tag = driver.find_element(By.TAG_NAME, "a")  # "a" 태그 (링크) 찾기

# 5. find_element(By.LINK_TEXT, "text") - 링크 텍스트로 요소 찾기
element_by_link_text = driver.find_element(By.LINK_TEXT, "Click Here")  # "Click Here" 텍스트 링크 찾기

# 6. find_element(By.PARTIAL_LINK_TEXT, "text") - 부분 링크 텍스트로 요소 찾기
element_by_partial_link_text = driver.find_element(By.PARTIAL_LINK_TEXT, "Click")  # "Click" 포함 링크 찾기

# 7. find_element(By.XPATH, "xpath") - XPath 표현식으로 요소 찾기
element_by_xpath = driver.find_element(By.XPATH, "//button[@class='btn']")  # XPath로 버튼 요소 찾기

# 8. find_element(By.CSS_SELECTOR, "css") - CSS 선택자로 요소 찾기
element_by_css_selector = driver.find_element(By.CSS_SELECTOR, "input.form-control")  # CSS 선택자로 입력 요소 찾기

# 찾은 요소들로 필요한 작업 수행 (예: 클릭, 텍스트 가져오기 등)

driver.quit()



예제 3).요소와 상호작용

 

 예시

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get("https://www.example.com/")  # 예시 페이지로 대체 필요

# 1. element.click() - 요소 클릭
button = driver.find_element(By.ID, "submit-button")
button.click()  # 버튼 클릭

# 2. element.send_keys("text") - 요소에 텍스트 입력
input_field = driver.find_element(By.NAME, "username")
input_field.send_keys("myusername")  # 입력 필드에 "myusername" 입력

# 3. element.clear() - 요소 내용 지우기
input_field.clear()  # 입력 필드 내용 지우기

# 4. element.text - 요소의 텍스트 가져오기
heading = driver.find_element(By.TAG_NAME, "h1")
heading_text = heading.text
print("Heading Text:", heading_text)  # h1 태그의 텍스트 출력

# 5. element.is_displayed() - 요소가 표시되는지 확인
image = driver.find_element(By.CLASS_NAME, "logo")
is_image_displayed = image.is_displayed()
print("Image is displayed:", is_image_displayed)  # 이미지가 표시되는지 여부 출력 (True/False)

# 6. element.is_enabled() - 요소가 활성화되어 있는지 확인
submit_button = driver.find_element(By.ID, "submit-button")
is_button_enabled = submit_button.is_enabled()
print("Button is enabled:", is_button_enabled)  # 버튼이 활성화되어 있는지 여부 출력 (True/False)

# 7. element.is_selected() - 요소가 선택되어 있는지 확인
checkbox = driver.find_element(By.NAME, "agree")
is_checkbox_selected = checkbox.is_selected()
print("Checkbox is selected:", is_checkbox_selected)  # 체크박스가 선택되어 있는지 여부 출력 (True/False)

driver.quit()


예제 4) 대기

 

 예시

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome()
driver.get("https://www.example.com/")  # 예시 페이지로 대체 필요

# 1. time.sleep(seconds) - 지정된 시간 동안 대기
time.sleep(5)  # 5초 동안 대기

# 2. WebDriverWait(driver, timeout) - 요소가 나타날 때까지 대기 (최대 10초)
try:
    element = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.ID, "myDynamicElement"))
    )
except TimeoutException:
    print("요소를 찾을 수 없습니다.")

# 3. driver.execute_script(script, *args) - JavaScript 코드 실행
# 예: 페이지 스크롤
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")

# 다른 JavaScript 예시
# - 요소의 스타일 변경: driver.execute_script("arguments[0].style.backgroundColor = 'yellow'", element)
# - 클릭 이벤트 트리거: driver.execute_script("arguments[0].click();", element)

driver.quit()


기본 사용 예제

 

 예시

from selenium import webdriver

# Chrome WebDriver 생성
driver = webdriver.Chrome()

# Firefox WebDriver 생성
driver = webdriver.Firefox()


 예시

from selenium import webdriver

# Chrome WebDriver 객체 생성
driver = webdriver.Chrome()

# 웹 페이지 URL
url = "https://www.google.com/"

# driver.get(url) 메서드를 사용하여 지정된 URL로 이동
driver.get(url)  # Google 홈페이지로 이동

# 현재 페이지 제목 출력
print(driver.title)  # "Google" 출력

# 5초 대기
time.sleep(5)  # 페이지 로딩 시간을 위해 잠시 대기

# 검색창 요소 찾기
search_box = driver.find_element(By.NAME, "q")

# 검색어 입력
search_box.send_keys("Selenium WebDriver")  # 검색창에 "Selenium WebDriver" 입력

# 검색 버튼 클릭
search_button = driver.find_element(By.NAME, "btnK")
search_button.click()  # 검색 버튼 클릭

# 잠시 대기
time.sleep(5)  # 검색 결과 페이지 로딩 시간을 위해 잠시 대기

# 브라우저 닫기
driver.quit()  # WebDriver 세션 종료 및 브라우저 닫기



반응형