Seleccione la primera opción seleccionada del campo select dentro de la celda de cuadrícula denominada inside td.
Estoy intentando extraer una tabla de un sitio web dinámico. Estoy utilizando Selenium para acceder a los datos correctos y luego usando BeautifulSoup para extraer la tabla, pero no puedo obtener los datos de las etiquetas select. Por ejemplo, una etiqueta select tiene dos opciones: Activo y Cancelado, pero al extraer esta etiqueta, los resultados muestran ambos textos, en lugar de eso solo quiero el texto seleccionado, como Activo o Cancelado. Aquí está el código HTML.
<!-- begin snippet: js hide: false console: true babel: false -->
<!-- language: lang-html -->
<td _ngcontent-c3="" class="sticky_table_fourth_left_entry"><!-- --><!-- --><!-- --><!-- --><select _ngcontent-c3="" class="form-control status-select ng-untouched ng-pristine" disabled="" style="background-color: rgb(255, 96, 96);"><option _ngcontent-c3="" value="Active">Active</option><option _ngcontent-c3="" value="Cancelled">Cancelled</option></select><!-- --><!-- --><!-- --><!-- --><!-- --><!-- --><!-- --><!-- --></td>
<!-- end snippet -->
No hay ningún elemento web para el texto seleccionado, pero cuando voy al árbol de accesibilidad, el texto seleccionado está en un gridcell.
Aquí está la imagen:
Después de hacer mucha investigación, todavía no puedo encontrar cómo extraer ese texto de gridcell, no sé si hay alguna manera de hacerlo, pero si la hay, por favor ayúdame aquí.
davy.ai
Parece que el texto seleccionado no es accesible directamente utilizando Selenium o BeautifulSoup. Sin embargo, puedes intentar usar la función
WebDriverWait
yExpectedConditions
para esperar hasta que el texto seleccionado sea visible en el árbol de accesibilidad antes de extraerlo.Primero, localiza el elemento
gridcell
que contiene el texto seleccionado utilizando su atributoclass
o cualquier otro identificador único. Luego, utiliza una combinación deWebDriverWait
yExpectedConditions
para esperar hasta que el elemento se vuelva visible con un atributoinnerText
no vacío.Aquí hay un ejemplo de fragmento de código utilizando Python y Selenium WebDriver:
Sustituye
driver
con tu instancia del WebDriver, yselected-gridcell
con el nombre de la clase o cualquier otro identificador único del elemento gridcell.Este código esperará hasta que el texto seleccionado sea visible en el árbol de accesibilidad, y luego lo extraerá del elemento
gridcell
utilizando su métodoget_attribute('innerText')
.