Preciso selecionar um elemento em um menu suspenso.
Por exemplo:
<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) Primeiro eu tenho que clicar nele. Eu faço isso:
inputElementFruits = driver.find_element_by_xpath("//select[id='fruits']").click()
2) Depois disso, tenho que selecionar o elemento bom, digamos Mango
.
Tentei fazê-lo, inputElementFruits.send_keys(...)
mas não funcionou.
python
selenium
selenium-webdriver
web-scraping
webdriver
Adam Bovien
fonte
fonte
Select
classe torna o problema muito mais fácil de resolver. Veja a resposta que eu postei.find_by_id
? Como forneço o valor então? Além disso, como encontro oxpath
elemento de?O Selenium fornece uma
Select
classe conveniente para trabalhar comselect -> option
construções:Veja também:
fonte
primeiro, você precisa importar a classe Select e, em seguida, criar a instância da classe Select. Depois de criar a instância da classe Select, você pode executar métodos de seleção nessa instância para selecionar as opções da lista suspensa. Aqui está o código
fonte
Espero que este código o ajude.
elemento suspenso com id
elemento suspenso com xpath
elemento suspenso com seletor de css
Selecionando 'Banana' em uma lista suspensa
ddelement.select_by_index(1)
ddelement.select_by_value('1')
ddelement.select_by_visible_text('Banana')
fonte
Tentei muitas coisas, mas meu menu suspenso estava dentro de uma tabela e não pude executar uma operação simples de seleção. Somente a solução abaixo funcionou. Aqui estou destacando o elem suspenso e pressionando a seta para baixo até obter o valor desejado -
fonte
Você não precisa clicar em nada. Use find por xpath ou o que você escolher e, em seguida, use as teclas de envio
Para o seu exemplo: HTML:
Pitão:
É isso aí.
fonte
Você pode usar uma combinação de seletor de css
Altere 1 no seletor attribute = value css para o valor correspondente à fruta desejada.
fonte
Vai funcionar bem
fonte
Funciona com o valor da opção:
fonte
Dessa forma, você pode selecionar todas as opções em qualquer lista suspensa.
fonte
for items in range(1,input1): inputs.select_by_index(items)
, mas ele começa no segundo índice. Como posso obter o primeiro valor?A melhor maneira de usar a
selenium.webdriver.support.ui.Select
classe para trabalhar com a seleção suspensa, mas em algum momento ela não funciona conforme o esperado devido a problemas de design ou outros problemas do HTML.Nesse tipo de situação, você também pode preferir como solução alternativa usando
execute_script()
o seguinte: -fonte
Conforme o HTML fornecido:
Para selecionar um
<option>
elemento de umahtml-selectmenu, você deve usar a classe Select . Além disso, como você precisa interagir com omenu suspensovocê precisa induzir o WebDriverWait para oelement_to_be_clickable()
.Para selecionar o
<option>
com texto como Mango dosuspensovocê pode usar, você pode usar uma das seguintes estratégias de localizador :Usando o atributo e método de ID
select_by_visible_text()
:Usando CSS-SELECTOR e
select_by_value()
método:Usando XPATH e
select_by_index()
método:fonte
classe pública ListBoxMultiple {
}
fonte