es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

findelementsbycss en VBA con Selenium

No puedo lograr extraer ciertos enlaces de un sitio web con CSS. Tampoco conozco bien CSS y todavía estoy familiarizándome con él. Tengo 2 preguntas, una es específica sobre cómo encontrar el elemento y al final, otra sobre cómo examinar el elemento en CSS.

1.

Inspección del sitio con marcadores

Enlace de imagen

Estoy tratando de obtener los dos enlaces señalados en verde, como marcador me gustaría usar el texto del enlace marcado en rojo o el <img src="X"> que está encima.

Mi código intentado:

Set Elements = GC.FindElementsByCss("table.TABLE tbody tr td p iframe")
a = 0
For Each Element In Elements
    ReDim Preserve href(a) As String
    href(a) = Element.Attribute("innerText")
    a = a + 1
Next Element

2.

¿Puedo examinar de alguna manera los elementos en VBA? Si sé qué se almacena en ellos, puedo buscar el valor deseado en “Value” y luego utilizar la expresión. Creo que en “Watches” una vez tuve la posibilidad de ver todos los valores diferentes de un elemento como “innerText”, “href”, “outerhtml”, “innerhtml”, y así sucesivamente.

En VBA Watches en este momento solo veo una pequeña descripción general.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Solución

    Para extraer enlaces específicos de un sitio web utilizando CSS, puedes utilizar selectores CSS para localizar los elementos específicos que contienen tus enlaces. Por ejemplo, para extraer los enlaces marcados en verde en la imagen proporcionada, puedes utilizar el siguiente selector CSS:

    a[href='http://www.example.com'] ~ p a
    

    Este selector combina dos criterios:

    1. Encuentra un elemento de ancla (a) con un valor de atributo href de “http://www.example.com”.
    2. Encuentra un elemento de párrafo hermano (p) que viene inmediatamente después del ancla y contiene otro elemento de ancla (a).

    Utilizando este selector obtendrás los dos enlaces marcados en verde.

    Para examinar elementos en VBA, puedes utilizar la instrucción Debug.Print para mostrar los valores de diferentes atributos de un elemento. Por ejemplo, para imprimir el atributo innerText del primer elemento en tu colección de Elements, puedes utilizar:

    Debug.Print Elements(0).Attribute("innerText")
    

    Esto mostrará el valor del atributo innerText en la Ventana Inmediata del Editor de VBA.

    Para ver diferentes valores de un elemento en la ventana de Vigilancia, puedes expandir el elemento haciendo clic en el icono de flecha junto a él. Esto mostrará todas las propiedades y atributos del elemento, incluyendo innerText, outerHTML, innerHTML, y más. También puedes agregar expresiones a la ventana de Vigilancia para rastrear los valores de atributos específicos a lo largo del tiempo.

Comments are closed.