Como viste en clases anteriores, un sitio web se construye por código HTML en forma de árbol, conteniendo distintos elementos con los que podemos interactuar según estén presentes o no en nuestra interfaz gráfica.
Selenium WebDriver nos brinda la posibilidad de poder referirnos a estos elementos y ejecutar métodos específicos para realizar las mismas acciones que un humano haría sobre los mismos, gracias a las clases WebDriver y WebElement.
Clase WebDriver
Cuenta con una serie de propiedades y métodos para interactuar directamente con la ventana del navegador y sus elementos relacionados, como son pop-ups o alerts. Por ahora nos centraremos a las más utilizadas.
Propiedades de la clase WebDriver
Estas son las más comunes para acceder al navegador.
| Propiedad/Atributo | Descripción | Ejemplo |
|---|---|---|
| current_url | Obtiene la URL del sitio en la que se encuentra el navegador | driver.get_url |
| current_window_handle | Obtiene la referencia que identifica a la ventana activa en ese momento | driver.current_window_handle |
| name | Obtiene el nombre del navegador subyacente para la instancia activa | driver.name |
| orientation | Obtiene la orientación actual del dispositivo móvil | driver.orientation |
| page_source | Obtiene el código fuente de disponible del sitio web | driver.page_source |
| title | Obtiene el valor de la etiqueta <title> del sitio web | driver.title |
Clase WebElement
Esta clase nos permite interactuar específicamente con elementos de los sitios web como textbox, text area, button, radio button, checkbox, etc.
Propiedades más comunes de la clase WebElement
| Propiedad/Atributo | Descripción | Ejemplo |
|---|---|---|
| size | Obtiene el tamaño del elemento | login.size |
| tag_name | Obtiene el nombre de la etiqueta HTML del elemento | login.tag_name |
| text | Obtiene el texto del elemento | login.text |
Métodos más comunes de la clase WebElement
| Método/Atributo | Descripción | Ejemplo |
|---|---|---|
| clear() | Limpia el contenido de un textarea | first_name.clear() |
| click() | Hace clic en el elemento | send_button.click() |
| get_attribute(name) | Obtiene el valor del atributo de un elemento | submit_button.get_attribute(‘value’) last_name.get_attribute(max_length) |
| is_displayed() | Verifica si el elemento está a la vista al usuario | banner.is_displayed() |
| is_enabled() | Verifica si el elemento está habilitado | radio_button.is_enabled() |
| is_selected() | Verifica si el elemento está seleccionado, para el caso de checkbox o radio button | checkbox.is_selected() |
| send_keys(value) | Simula escribir o presionar teclas en un elemento | email_field.send_keys(‘team@platzi.com’) |
| submit() | Envía un formulario o confirmación en un text area | search_field.submit() |
| value_of_css_property(property_name) | Obtiene el valor de una propiedad CSS del elemento | header.value_of_css_property(‘background-color’) |
Quedaría así:
Kevin Echenique
para los q estan usando desde la version Selenium 4.3.0, se han hecho cambios con las pruebas, el profesor escribio en ejemplo "driver.find_element_by_name('q')" ahora fueron removidos y solo debemos de escribir "driver.find_element("name", "q")", todo el codigo de la clase debera se der modificado para poder completar los test, si no, seran un error siempre q trataen de hacer cualquiera q no tenga esta modificacion
Emel GM
Creo que una ventaja de haber utilizado el entorno virtual fue poder instalar la misma versión y así trabajar a la par con el tutor sin problemas de versiones. pero igual es buen dato.
Daniel Cañon
en el ejemplo de la current_url debería ser driver.current_url como se puede ver en la clase de 10 de dropdown
Ricardo Cuéllar
En la documentación viene bien explicado: https://selenium-python.readthedocs.io/api.html?highlight=WebDriver les recomiendo no empezar con la 7.1 porque si intimida jiji mejor vayanse a las que sigue el curso para que le agarren el hilo.
Eliaz Bobadilla
Esa documentación no es oficial
Sebastián Andrade
Como pudimos usar metodos de web element en la clase anterior si no importamos el modulo al principio?
Jose David Ballesteros Paternina
Hola Sebastián, Se utiliza cuando se importa el webdriver, es decir:
from selenium import webdriver
Fabiola Dayana Acarapi Alvarez
Documentación de web element https://www.selenium.dev/documentation/en/webdriver/web_element/
Cristian David Restrepo Marin
Esta información es importante conocerla. Muchas gracias
Jorge Heli Rueda Uribe
Que buena tabla que resume todos los métodos de WebDriver y WebElement.
Antonio Demarco Bonino
Brillante! Me encanta cuando la data está bien esqumatizada y organizada de una manera muy visible.
Juan Carlos Ortiz Romero
Cuenta con una serie de propiedades y métodos para interactuar directamente con la ventana del navegador y sus elementos relacionados, como son pop-ups o alerts. Por ahora nos centraremos a las más utilizadas.
Jhonatan David Ibarra Lavado
a ver como así, o sea como se utilizan, me perdí me podrías explicar gracias
Miguel Alfredo Valdes Arias
Supongo que te perdiste con los webelements, primero buscas el elemento con el que vas a trabajar, por ejemplo una caja de búsqueda:
search_box = driver.find_element_by_id('search')
y ya luego usas los métodos que necesites, por ejemplo, limpiar la caja y escribir platzi:
search_box.clear().send_keys('platzi')
Fredy Mendoza Vargas
Excelente
Daniel Cañon
excelente
DANIEL STEVEN SARMIENTO CUERVO
no hay nada
Héctor Daniel Vega Quiñones
ProfesorEn un momento estará disponible :)
Cristian Adrian Ayala
Como andas Daniel? Actualicé la tabla de las 'Propiedades más comunes de la clase WebElement' ya que estaba incompleta. Saludos desde Uruguay.
Andrés Corral
super
Miguel Angel Ruiz
Muy Bueno!!
Gerardo Alberto Soto Alvarez del Castillo
Les dejo un Link con algunos de los métodos más útiles: https://www.softwaretestinghelp.com/selenium-webdriver-commands-selenium-tutorial-17/
DAVID EDUARDO BAEZ SANCHEZ
Excelente
Jose Antonio Rojas Ollarves
Resumen: WebElement representa un elemento del DOM. Los WebElements se pueden encontrar buscando desde la raíz del documento utilizando una instancia de WebDriver o buscando en otra WebElement. | El API WebDriver proporciona métodos integrados para encontrar los elementos web que son basados en diferentes propiedades como ID, Nombre, Clase, XPath, Selectores CSS, Texto de enlace, etc.