[python] Python을 사용하여 Selenium으로 드롭 다운 메뉴 값을 선택하는 방법은 무엇입니까?
드롭 다운 메뉴 에서 요소를 선택해야 합니다.
예를 들면 다음과 같습니다.
<select id="fruits01" class="select" name="fruits">
<option value="0">Choose your fruits:</option>
<option value="1">Banana</option>
<option value="2">Mango</option>
</select>
1) 먼저 클릭해야합니다. 나는 이것을한다:
inputElementFruits = driver.find_element_by_xpath("//select[id='fruits']").click()
2) 그 후에 좋은 요소를 선택해야합니다 Mango
.
나는 그것을하려고했지만 inputElementFruits.send_keys(...)
작동하지 않았다.
답변
클릭이 목록을 채우기 위해 일종의 아약스 호출을 시작하지 않는 한 실제로 클릭을 실행할 필요는 없습니다.
요소를 찾은 다음 원하는 옵션을 선택하여 옵션을 열거하십시오.
예를 들면 다음과 같습니다.
from selenium import webdriver
b = webdriver.Firefox()
b.find_element_by_xpath("//select[@name='element_name']/option[text()='option_text']").click()
자세한 내용은 /sqa/1355/unable-to-select-an-option-using-seleniums-python-webdriver 에서 확인할 수 있습니다.
답변
Selenium은 구조체 로 작업 하기에 편리한 Select
클래스 를 제공합니다 select -> option
.
from selenium import webdriver
from selenium.webdriver.support.ui import Select
driver = webdriver.Firefox()
driver.get('url')
select = Select(driver.find_element_by_id('fruits01'))
# select by visible text
select.select_by_visible_text('Banana')
# select by value
select.select_by_value('1')
또한보십시오:
답변
먼저 Select 클래스를 가져 와서 Select 클래스의 인스턴스를 만들어야합니다. Select 클래스의 인스턴스를 작성한 후 해당 인스턴스에서 select 메소드를 수행하여 드롭 다운 목록에서 옵션을 선택할 수 있습니다. 여기 코드가 있습니다
from selenium.webdriver.support.select import Select
select_fr = Select(driver.find_element_by_id("fruits01"))
select_fr.select_by_index(0)
답변
이 코드가 도움이 되길 바랍니다.
from selenium.webdriver.support.ui import Select
ID가있는 드롭 다운 요소
ddelement= Select(driver.find_element_by_id('id_of_element'))
xpath가있는 드롭 다운 요소
ddelement= Select(driver.find_element_by_xpath('xpath_of_element'))
CSS 선택기가있는 드롭 다운 요소
ddelement= Select(driver.find_element_by_css_selector('css_selector_of_element'))
드롭 다운에서 ‘바나나’선택
- 드롭 다운 인덱스 사용
ddelement.select_by_index(1)
- 드롭 다운 값 사용
ddelement.select_by_value('1')
- 드롭 다운에 표시되는 텍스트와 일치시킬 수 있습니다.
ddelement.select_by_visible_text('Banana')
답변
나는 많은 것을 시도했지만 내 드롭 다운이 테이블 안에 있었고 간단한 선택 작업을 수행 할 수 없었습니다. 아래 솔루션 만 작동했습니다. 여기에서 드롭 다운 요소를 강조 표시하고 원하는 값을 얻을 때까지 아래쪽 화살표를 누릅니다.
#identify the drop down element
elem = browser.find_element_by_name(objectVal)
for option in elem.find_elements_by_tag_name('option'):
if option.text == value:
break
else:
ARROW_DOWN = u'\ue015'
elem.send_keys(ARROW_DOWN)
답변
아무 것도 클릭 할 필요가 없습니다. xpath 또는 선택한 항목으로 찾기를 사용하고 보내기 키를 사용하십시오.
예를 들어 : HTML :
<select id="fruits01" class="select" name="fruits">
<option value="0">Choose your fruits:</option>
<option value="1">Banana</option>
<option value="2">Mango</option>
</select>
파이썬 :
fruit_field = browser.find_element_by_xpath("//input[@name='fruits']")
fruit_field.send_keys("Mango")
그게 다야.
답변
CSS 선택기 조합을 잘 사용할 수 있습니다
driver.find_element_by_css_selector("#fruits01 [value='1']").click()
attribute = value css selector의 1을 원하는 fruit에 해당하는 값으로 변경하십시오.