2

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

<select class="chosen" id="fruitType" name="fruitType"> 
    <option value="">Select</option> 
    <option value="1">jumbo fruit 1</option> 
    <option value="2">jumbo fruit 2</option> 
    <option value="3">jumbo fruit 3</option> 
    <option value="4">jumbo fruit 4</option> 
    <option value="5">jumbo fruit 5</option> 
    <option value="8">jumbo fruit 6</option> 
</select> 

Я попытался с помощью этого кода,

driver = webdriver.Firefox() 
driver.find_element_by_xpath("//select[@name='fruitType']/option[text()='jumbo fruit 4']").click() 

но вернула меня с ошибками. Как я могу выполнить то же самое.

ответ

1

Привет, пожалуйста, просто использовать один код строки он будет работать

// please note the if in case you have to select a value form a drop down with tag 
// name Select then use below code it will work like charm 
driver.find_element_by_id("fruitType").send_keys("jumbo fruit 4"); 

Надеются, что это помогает

+0

Для этого ответа я получаю следующую ошибку: driver.find_element_by_id («fruitType»). SendKeys («jumbo fruit 4»); AttributeError: объект 'WebElement' не имеет атрибута 'sendKeys' – 404

+0

Извините за python, пожалуйста, используйте send_keys, я являюсь формой java, так что это была ошибка typo, также я обновил sendkeys для python –

+0

, так как select = Select (driver.find_element_by_xpath ("// select [@ id = 'fruitType' и @ class = 'selected']")) driver.find_element_by_id ("fruitType"). send_keys ("jumbo fruit 4); – 404

2

От official documentation:

from selenium.webdriver.support.ui import Select 

select = Select(driver.find_element_by_id('fruitType')) 
# Now we have many different alternatives to select an option. 
select.select_by_index(4) 
select.select_by_visible_text("jumbo fruit 4") 
select.select_by_value('4') #Pass value as string 
0

вы можете перебирать корыто всех варианты, как это:

element = driver.find_element_by_xpath("//select[@name='fruitType']") 
all_options = element.find_elements_by_tag_name("option") 
for option in all_options: 
    print("Value is: %s" % option.get_attribute("value")) 
    option.click() 
Смежные вопросы