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’) |
David Rodriguez
EstudianteMiguel Angel Paz Gonzalez
EstudianteCristian Adrian Ayala
EstudianteKevin Echenique
EstudianteEmel GM
EstudianteDaniel Cañon
EstudianteRicardo Cuéllar
EstudianteEliaz Bobadilla
EstudianteSebastián Andrade
EstudianteJose David Ballesteros Paternina
EstudianteFabiola Dayana Acarapi Alvarez
EstudianteCristian David Restrepo Marin
EstudianteJorge Heli Rueda Uribe
EstudianteAntonio Demarco Bonino
EstudianteJuan Carlos Ortiz Romero
EstudianteJhonatan David Ibarra Lavado
EstudianteMiguel Alfredo Valdes Arias
EstudianteFredy Mendoza Vargas
EstudianteDaniel Cañon
EstudianteDANIEL STEVEN SARMIENTO CUERVO
EstudianteHéctor Daniel Vega Quiñones
ProfesorCristian Adrian Ayala
EstudianteAndrés Corral
EstudianteMiguel Angel Ruiz
EstudianteGerardo Alberto Soto Alvarez del Castillo
EstudianteDAVID EDUARDO BAEZ SANCHEZ
EstudianteJose Antonio Rojas Ollarves
EstudianteSi debería mostrarse: Obtiene el nombre de la etiqeta HTML del elemento. Y en la columna Ejemplo corresponde: login.tag_name
Quedaría así:
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
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.
en el ejemplo de la current_url debería ser driver.current_url como se puede ver en la clase de 10 de dropdown
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.
Esa documentación no es oficial
Como pudimos usar metodos de web element en la clase anterior si no importamos el modulo al principio?
Hola Sebastián, Se utiliza cuando se importa el webdriver, es decir:
from selenium import webdriver
Documentación de web element https://www.selenium.dev/documentation/en/webdriver/web_element/
Esta información es importante conocerla. Muchas gracias
Que buena tabla que resume todos los métodos de WebDriver y WebElement.
Brillante! Me encanta cuando la data está bien esqumatizada y organizada de una manera muy visible.
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.
a ver como así, o sea como se utilizan, me perdí me podrías explicar gracias
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')
Excelente
excelente
no hay nada
En un momento estará disponible :)
Como andas Daniel? Actualicé la tabla de las 'Propiedades más comunes de la clase WebElement' ya que estaba incompleta. Saludos desde Uruguay.
super
Muy Bueno!!
Les dejo un Link con algunos de los métodos más útiles: https://www.softwaretestinghelp.com/selenium-webdriver-commands-selenium-tutorial-17/
Excelente
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.