Selenium[2] - Nivel Avanzado

Selenium-LevelUp

¡Repasemos!

En la entrada anterior aprendimos a importar las clases para el Webdriver, abrir una página web en el navegador, localizar un elemento y trabajar con el. En esta ocasión vamos a localizar varios elementos que guarden relación y los almacenaremos en un Array para poder manipularlos.

Además, vamos a emplear el método .send_keys() para rellenar formularios, nos sera útil para automatizar registros o hacer test de formularios.

Antes de empezar es conveniente conocer cómo funciona el Webdriver y qué sucede cada vez que usamos alguno de los métodos .find_element_by_x(). Como habéis visto, al inicio del Script guardamos en una variable el resultado del método .get() para posteriormente trabajar con el. Este método guarda un objeto de tipo Webdriver con la información de la página que hemos obtenido con el método .get()

¿Y qué sucede cuando usamos los métodos .find_element_by_x()?

Igual que el método .get() se crea un objeto de tipo Webdriver pero solo guarda el fragmento de código resultado de la búsqueda, por lo que hereda los métodos .find_element_by_x, lo que nos da la posibilidad de obtener los hijos de un elemento. Vamos a ver 4 métodos que nos van a resultar de mucha ayuda.

.find_elements_by_class_name('Clase_HTML')
Anteriormente usamos los métodos para buscar elementos de forma individual, pero en HTML es muy común encontrar varios elementos que tienen algo en común y se pueden localizar por su clase.
.find_elements_by_xpath('XPath')
En mas de una ocasión, nos vamos a encontrar con elementos sin nombre de clase, para ello también podemos usar el XPath. El XPath utiliza un sistema de índices entre corchetes, por ejemplo: Tenemos una lista de 3 elementos: la ruta XPath del primero seria '/ul/li[0]', solo tenemos que eliminar los corchetes quedando así '/ul/li'.
Pero quizás la potencia de este método radica en localizar los hijos de un elemento, indicando esta ruta XPath: './/*'
.click()
Realiza la misma acción que haríamos nosotros con el ratón sobre el elemento, muy útil para buttons, checkbox y radiobutton
.send_keys("string" or Keys)
Nos permite rellenar formularios tipo textbox, password o textarea. El argumento puede ser tipo string o Keys; Selenium nos proporciona una serie de caracteres especiales

En esta ocasión, he preparado una plantilla HTML con unas funciones JavaScript y os propongo realizar 3 ejercicios. Si los realizáis correctamente obtendréis "Greenlight" lo que significa que sois expertos en la materia. Al final del artículo podéis encontrar un enlace a GitHub con la solución que yo he dado a los 3 problemas con los métodos explicados previamente.

Ejercicio 1
Localizar los 3 parrafos (utiliza el metodo 'find_elements_by_class_name') y unirlos en el "textarea"
Ejercicio 2
Introduce los elementos de la lista por orden en los "textbox"
Ejercicio 3
Selecciona el segundo "radiobutton"
  • Elemento 1
  • Elemento 2
  • Elemento 3

LLorem fistrum qui no puedor tempor por la gloria de mi madre te voy a borrar el cerito fistro la caidita ese que llega consequat mamaar. Commodo velit velit a gramenawer dolore ut voluptate. Llevame al sircoo ahorarr está la cosa muy malar irure. Apetecan ese pedazo de ut va usté muy cargadoo incididunt. Commodo va usté muy cargadoo irure occaecat apetecan. Irure cillum pecador dolore officia. Sed a wan papaar papaar llevame al sircoo magna.

Ut aliqua te va a hasé pupitaa nostrud no te digo trigo por no llamarte Rodrigor ad dolor. Quis te voy a borrar el cerito consequat caballo blanco caballo negroorl ad duis occaecat no puedor velit tiene musho peligro. Sexuarl incididunt qué dise usteer occaecat et a gramenawer laboris laboris no puedor se calle ustée. Dolore duis está la cosa muy malar de la pradera labore incididunt llevame al sircoo cillum reprehenderit. Ex diodenoo cillum ut me cago en tus muelas se calle ustée laboris a gramenawer exercitation ut. Va usté muy cargadoo diodenoo ahorarr amatomaa a gramenawer. Aliquip diodenoo diodeno veniam ahorarr consectetur de la pradera sed. Al ataquerl está la cosa muy malar consequat consectetur dolore.

Fistro exercitation no puedor pupita ullamco irure a gramenawer dolor reprehenderit. Benemeritaar nostrud pupita se calle ustée. Esse quietooor apetecan reprehenderit va usté muy cargadoo mamaar no te digo trigo por no llamarte Rodrigor apetecan magna está la cosa muy malar nisi. Está la cosa muy malar mamaar por la gloria de mi madre ut de la pradera nisi. Velit se calle ustée nisi jarl cillum nisi va usté muy cargadoo caballo blanco caballo negroorl aliquip cillum. Aliqua ut a gramenawer por la gloria de mi madre aliquip se calle ustée ad.











Ejercicio 1
Ejercicio 2
Ejercicio 3

Ver solución: GitHub

Artículo anterior: Selenium[1] Funciones Básicas


Añadir nuevo comentario