Post

파이썬으로 시작하는 셀레니움 - 05

파이썬으로 셀레니움을 사용할 수 있다.

파이썬으로 시작하는 셀레니움 - 05

[사용자 인터랙션]


사용자 인터랙션이란, 사용자가 웹사이트에서 클릭하거나 값을 입력하는 행동을 의미한다.
Selenium은 이러한 인터랙션을 자동으로 수행할 수 있도록 다양한 메서드를 제공한다.
이 장에서는 가장 기본적인 입력, 클릭, 선택 요소 제어 방법을 다룬다.


1. 입력값 전송


1.1. 텍스트 필드에 값 입력

send_keys()는 텍스트 입력 필드에 키보드 입력처럼 값을 입력하는 메서드이다.
아이디, 비밀번호, 검색어 입력 등 다양한 곳에 사용할 수 있다.

1
2
3
4
5
6
7
from selenium.webdriver.common.by import By

# 입력창 찾기
input_box = driver.find_element(By.NAME, "query")

# 값 입력
input_box.send_keys("Selenium 자동화")

send_keys()는 입력창에 문자열을 입력한다. 주로 <input>, <textarea> 같은 텍스트 입력 요소에 사용된다.


1.2. 키보드 키 입력

1
2
3
4
5
6
7
from selenium.webdriver.common.keys import Keys

# 입력창 찾기
input_box = driver.find_element(By.NAME, "query")

# 키보드 키 입력
input_box.send_keys(Keys.ENTER)
키명기능
keys.ENTER엔터
keys.TAB탭 이동
keys.ESCAPEESC
keys.BACKSPACE백스페이스

keys는 키보드 키 입력을 위한 상수 모음이다.


2. 버튼 및 링크 클릭


2.1. 버튼 클릭

1
2
3
4
5
6
7
from selenium.webdriver.common.by import By

# 버튼 찾기
login_btn = driver.find_element(By.ID, "login-button")

# 버튼 클릭
login_btn.click()

click()은 요소가 클릭 가능한 상태일 때 사용 가능하다.


2.2. 링크 클릭

1
2
3
4
5
6
7
from selenium.webdriver.common.by import By

# 링크 찾기
link = driver.find_element(By.LINK_TEXT, "이용약관")

# 링크 클릭
link.click()
선택자 방식설명
By.LINK_TEXT링크 전체 텍스트로 선택
By.PARTIAL_LINK_TEXT일부 텍스트로 선택 (부분 매칭)

링크는 href 속성을 가진 <a> 태그를 대상으로 한다.


3. 드롭다운/풀다운 메뉴


1
2
3
4
5
6
7
8
9
10
11
12
13
14
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import Select

# 드롭다운/풀다운 메뉴 찾기
dropdown = Select(driver.find_element(By.ID, "category"))

# value 속성으로 선택
dropdown.select_by_value("books")

# 화면에 보이는 텍스트로 선택
dropdown.select_by_visible_text("도서")

# 첫 번째 옵션 선택
dropdown.select_by_index(0)
메서드설명
select_by_value(“값”)value 속성값으로 선택
select_by_visible_text(“텍스트”)화면에 보이는 글자로 선택
select_by_index(번호)인덱스 번호(0부터 시작)로 선택

<select> 태그가 아닌 경우에는 이 방식이 동작하지 않는다.


4. 체크박스 제어


is_selected()는 체크 여부를 반환하는 메서드다.


4.1. 체크박스 체크하기

1
2
3
4
5
6
7
from selenium.webdriver.common.by import By

checkbox = driver.find_element(By.ID, "agree")

# 체크되어 있지 않으면 클릭해서 체크
if not checkbox.is_selected():
    checkbox.click()


4.2. 체크박스 해제하기

1
2
if checkbox.is_selected():
    checkbox.click()


5. 라디오 버튼 제어


라디오 버튼은 여러 개 중 하나만 선택할 수 있는 형태이다.


5.1. 라디오 버튼 선택

1
2
3
4
radio = driver.find_element(By.ID, "gender-male")

if not radio.is_selected():
    radio.click()

선택된 항목은 is_selected()로 확인할 수 있다.

This post is licensed under CC BY 4.0 by the author.