Saltar al contenido

¿Cómo seleccionar un valor de menú desplegable con Selenium usando Python?

Al fin luego de tanto batallar pudimos dar con la contestación de este atascamiento que tantos lectores de este espacio han presentado. Si deseas aportar algo más no dudes en aportar tu comentario.

Solución:

Selenium proporciona una práctica Select clase para trabajar select -> option construcciones:

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

Ver también:

  • ¿Cuál es la forma correcta de seleccionar un uso de Python WebDriver de Selenium?

A menos que su clic esté disparando algún tipo de llamada ajax para completar su lista, en realidad no necesita ejecutar el clic.

Simplemente busque el elemento y luego enumere las opciones, seleccionando las opciones que desee.

Aquí hay un ejemplo:

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

Puedes leer más en:
https://sqa.stackexchange.com/questions/1355/unable-to-select-an-option-using-seleniums-python-webdriver

primero necesita importar la clase Select y luego necesita crear la instancia de la clase Select. Después de crear la instancia de la clase Seleccionar, puede realizar métodos de selección en esa instancia para seleccionar las opciones de la lista desplegable. Aquí está el código

from selenium.webdriver.support.select import Select

select_fr = Select(driver.find_element_by_id("fruits01"))
select_fr.select_by_index(0)

Sección de Reseñas y Valoraciones

Acuérdate de que tienes permiso de comentar si te ayudó.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *