Necesito seleccionar un elemento de un menú desplegable.
Por ejemplo:
<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) Primero tengo que hacer clic en él. Hago esto:
inputElementFruits = driver.find_element_by_xpath("//select[id='fruits']").click()
2) Después de eso tengo que seleccionar el elemento bueno, digamos Mango
.
Traté de hacerlo inputElementFruits.send_keys(...)
pero no funcionó.
python
selenium
selenium-webdriver
web-scraping
webdriver
Adam Bovien
fuente
fuente
Select
clase hace que el problema sea mucho más fácil de resolver, vea la respuesta que publiqué.find_by_id
? ¿Cómo proporciono el valor entonces? Además, ¿cómo encuentro elxpath
de un elemento?Selenium proporciona una
Select
clase conveniente para trabajar conselect -> option
construcciones:Ver también:
fuente
primero debe importar la clase Select y luego debe crear la instancia de la clase Select. Después de crear la instancia de la clase Select, puede realizar métodos de selección en esa instancia para seleccionar las opciones de la lista desplegable. Aqui esta el codigo
fuente
Espero que este código te ayude.
elemento desplegable con id
elemento desplegable con xpath
elemento desplegable con selector css
Seleccionar 'Banana' de un menú desplegable
ddelement.select_by_index(1)
ddelement.select_by_value('1')
ddelement.select_by_visible_text('Banana')
fuente
Intenté muchas cosas, pero mi menú desplegable estaba dentro de una tabla y no pude realizar una operación de selección simple. Solo la solución a continuación funcionó. Aquí estoy resaltando el elemento desplegable y presionando la flecha hacia abajo hasta obtener el valor deseado
fuente
No tienes que hacer clic en nada. Use find by xpath o lo que elija y luego use las teclas de envío
Para su ejemplo: HTML:
Pitón:
Eso es.
fuente
Puedes usar una combinación de selector css bien
Cambie el 1 en el atributo = valor css selector al valor correspondiente con la fruta deseada.
fuente
Funcionará bien
fuente
Funciona con el valor de la opción:
fuente
De esta manera, puede seleccionar todas las opciones en cualquier menú desplegable.
fuente
for items in range(1,input1): inputs.select_by_index(items)
, pero comienza desde el segundo índice. ¿Cómo puedo obtener el primer valor?La mejor manera de usar la
selenium.webdriver.support.ui.Select
clase para trabajar con la selección desplegable, pero en algún momento no funciona como se esperaba debido a un problema de diseño u otros problemas del HTML.En este tipo de situación, también puede preferir como solución alternativa utilizando
execute_script()
lo siguiente:fuente
Según el HTML proporcionado:
Para seleccionar un
<option>
elemento de unhtml-selectmenú tienes que usar la clase Seleccionar . Además, como tienes que interactuar con elMenú desplegabletienes que inducir WebDriverWait para elelement_to_be_clickable()
.Para seleccionar el
<option>
texto con Mango desde eldesplegablepuede usar cualquiera de las siguientes estrategias de localización :Usando el atributo ID y el
select_by_visible_text()
método:Usando CSS-SELECTOR y
select_by_value()
método:Usando XPATH y
select_by_index()
método:fuente
clase pública ListBoxMultiple {
}
fuente