셀레니움, 드롭다운 Select 상자 항목 선택하기
글. 수알치 오상문
다음과 같은 Select 상자가 있다고 하자.
이 상자에 있는 과일 중에서 Mango를 셀레니움에서 선택하려고 한다.
예제에 사용한 HTML 코드는 다음과 같다.
<html>
<head><title>hello</title></head>
<body>
Select!!!
<select id="fruits01" class="select" name="fruits">
<option value="0">Choose your fruits:</option>
<option value="1">Banana</option>
<option value="2">Mango</option>
<option value="3">Apple</option>
<option value="2">Pear</option>
</select>
</body>
</html>
다음은 셀레니움 코드이다.
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
import time
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
WebDriverWait(driver, 3)
driver.get('http://127.0.0.1:5000/select')
WebDriverWait(driver, 5)
time.sleep(0.5)
driver.find_element(By.XPATH, "//*[@id='fruits01']/option[text()='Mango']").click()
input("Quit? :")
driver.quit()
셀레니움 코드 중에서 다음 내용이 select 상자 항목을 바꾸는 부분이다.
XPATH 방식으로 찾아가서 text가 Mango인 것을 클릭하여 선택하는 방식이다.
driver.find_element(By.XPATH, "//*[@id='fruits01']/option[text()='Mango']").click()
[참고] 다음처럼 Select 모듈을 이용하는 방법은 더 유용하게 쓸 수 있다.
from selenium import webdriver
from selenium.webdriver.support.ui import Select
driver = webdriver.Firefox() # Chrome()
url = "접속주소"
driver.get('url')
# id를 이용하여 select 상자를 찾음
select = Select(driver.find_element_by_id('fruits01'))
# 선택 항목이 나타나게 만듦
select.select_by_visible_text('Mango')
# value를 이용하여 선택 (Mango는 2)
select.select_by_value('2')
[화면] 셀레니움을 이용하여 Select 상자 선택 항목을 Mango로 변경했음
'웹 크롤링, 스크래핑' 카테고리의 다른 글
파이썬, 셀레니움 팝업창/경고창 다루기 (0) | 2022.07.13 |
---|---|
파이썬, 셀레니움 속도 향상을 위한 5가지 팁 (0) | 2022.07.13 |
네이버 블로그 한 페이지 제목 가져오기 (iframe 크롤링) (0) | 2022.07.10 |
BeautifulSoup 기초 (0) | 2022.07.10 |
셀레니움, 요소(어트리뷰트) 속성 검사, 설정, 삭제 (0) | 2022.07.10 |