[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'))

드롭 다운에서 ‘바나나’선택

  1. 드롭 다운 인덱스 사용

ddelement.select_by_index(1)

  1. 드롭 다운 값 사용

ddelement.select_by_value('1')

  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에 해당하는 값으로 변경하십시오.