반응형
파이썬, 셀레니움 선택된 목록에서 항목 작업하기 (select 요소)
글. 수알치 오상문
[참고] AttributeError: 'WebElement' object has no attribute 'select_by_visible_text'
셀레니움 버전이 바뀌면서 select_by_visible_text 메소드는 더이상 지원하지 않는다. 대신에 Select 모듈을 사용해야 한다.
1. 아래 모듈을 임포트하자. 그러면 select 요소에 대한 기능을 이용할 수 있다.
from selenium.webdriver.support.select import Select
2. 선택한 select 요소를 Select로 지정하자.
# find_element로 선택한다.
select_element = driver.find_element(By.ID,'selectElementID')
# 선택한 요소의 목록을 다루도록 Select로 선택한다.
select_object = Select(select_element)
3. 선택한 select 요소가 아래와 같다고 하자.
<select>
<option value=value1>Bread</option>
<option value=value2 selected>Milk</option>
<option value=value3>Cheese</option>
</select>
4. select 항목 선택하여 가져오기
# <select> 요소의 첫 번째를 가리진다.
select_object.select_by_index(1)
# <option> 값을 기준으로 선택한다.
select_object.select_by_value('value1')
# <option> 값에서 보이는 텍스트를 기준으로 선택한다.
select_object.select_by_visible_text('Bread')
5. 선택된 항목들 가져오기
# select 목록에서 선택된 항목들 가져오기
all_selected_options = select_object.all_selected_options
# 선택된 첫 항목 가져오기
first_selected_option = select_object.first_selected_option
6. 선택된 항목의 옵션 가져오기
# 선택된 항목의 옵션 가져오기
all_available_options = select_object.options
7. 선택 해제하기
# 인덱스를 이용하요 선택 해제
select_object.deselect_by_index(1)
# value 속성으로 선택 해제
select_object.deselect_by_value('value1')
# 보이는 텍스트를 이용하여 선택 해제
select_object.deselect_by_visible_text('Bread')
# 요소를 모두 선택 해제
select_object.deselect_all()
8. 다중 선택인지 확인하기
does_this_allow_multiple_selections = select_object.is_multiple
반응형
'웹 크롤링, 스크래핑' 카테고리의 다른 글
파이썬, 셀레니움 연속 작업 Actions 예제 (0) | 2022.07.16 |
---|---|
파이썬, 셀레니움 응답 기다리기 (0) | 2022.07.16 |
파이썬, 셀레니움 요소 상태, 값, 텍스트 확인 (0) | 2022.07.16 |
파이썬, 셀레니움 요소 클릭, 값 입력, 값 삭제, 단축키 입력 (0) | 2022.07.16 |
파이썬, 셀레니움 웹 페이지에서 작업 대상 선택 (0) | 2022.07.16 |