파이썬으로 시작하는 셀레니움 - 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.ESCAPE | ESC |
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.