Вопрос-Ответ

How to select a drop-down menu value with Selenium using Python?

Как выбрать значение раскрывающегося меню с помощью Selenium, используя Python?

Мне нужно выбрать элемент из раскрывающегося меню.

Например:

<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(...) но это не сработало.

Переведено автоматически
Ответ 1

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

Смотрите также:

Ответ 2

Если ваш click не запускает какой-либо ajax-вызов для заполнения вашего списка, вам на самом деле не нужно выполнять click .

Просто найдите элемент, а затем перечислите параметры, выбрав нужные параметры.

Вот пример:

from selenium import webdriver
b = webdriver.Firefox()
b.find_element_by_xpath("//select[@name='element_name']/option[text()='option_text']").click()

Подробнее вы можете прочитать в:

https://sqa.stackexchange.com/questions/1355/unable-to-select-an-option-using-seleniums-python-webdriver

Ответ 3

Я надеюсь, что этот код поможет вам.

from selenium.webdriver.support.ui import Select

раскрывающийся элемент с идентификатором

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

Выбираем 'Banana' из раскрывающегося списка


  1. Используя индекс выпадающего списка

ddelement.select_by_index(1)


  1. Используя значение раскрывающегося списка

ddelement.select_by_value('1')


  1. Вы можете использовать сопоставление текста, который отображается в раскрывающемся списке.

ddelement.select_by_visible_text('Banana')

Ответ 4

сначала вам нужно импортировать класс 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)
python selenium selenium-webdriver