💾 Archived View for tilde.team › ~amok › selenium.gmi captured on 2021-12-04 at 18:04:22. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2021-11-30)

-=-=-=-=-=-=-

SELENIUM

LÓGICA

Para usar SELENIUM tenemos que seguir una serie de pasos:

1. Inicializar el WEBDRIVER.

2. Ingresar a la página objetivo.

3. Buscar elementos en la página y convertirlos en objetos.

4. Realizar operaciones con esos objetos.

WEBDRIVER

El WEBDRIVER no es más que una instancia de un navegador-web controlado por SELENIUM. Puede ser Chrome, Firefox, etc. La manera de inicializarlo es:

driver = webdriver.Chrome()
driver = webdriver.Firefox()
driver = webdriver.Blabla()

Tené en cuenta que vas a necesitar tener instalada en tu distribución el paquete Chromedriver o Gekkodriver, etc., para poder usar SELENIUM.

ELEMENTOS HTML

Podemos convertir en objetos una buena cantidad de elementos HTML, previamente haberlos identificado en la página objetivo.

Algunos ejemplos:

busqueda = driver.find_element_by_id("search-text")
lista= driver.find_elements_by_class_name("result_listing")

OPERACIONES

Una vez tengamos estos elementos declarados como objetos, podemos acceder a ciertos métodos en los mismos. Por ejemplo:

busqueda.send_keys("Husserl")
busqueda.submit()

IMPORTAR

Tipicamente se importa primero la LIBRERÍA:

from selenium import webdriver

Y luego de manera independiente las otras funcionalidades que necesitemos:

from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.webdriver.support.ui import Select

CLASES, OBJETOS, ATRIBUTOS

Cuando importamos WEBDRIVER accedemos a una CLASE. Por eso es que podemos utilizar:

Es decir, con "from selenium import webdriver" lo que hacemos es importar la CLASE webdriver. Una vez en posesión de la misma, podemos INSTANCIAR OBJETOS de esta clase. De hecho, instanciamos un objeto webdriver.Chrome() más arriba, cuando hicimos:

from selenium import webdriver

driver = webdriver.Chrome()

Pero también podemos importar CLASES más específicas, como cuando hicimos:

from selenium.webdriver.common.keys import Keys

Clases como "Keys" nos permiten acceder a ciertos ATRIBUTOS. Como es típico en Python, tenemos dos clases de ATRIBUTOS:

Ejemplo de PROPIEDAD:

driver.current_url

Ejemplo de MÉTODO:

driver.close()

OPERACIONES DETALLE

Los OBJETOS tienen ATRIBUTOS, y dentro de los ATRIBUTOS tenemos los MÉTODOS. Cuando previamente me referí a las OPERACIONES que se pueden ejecutar sobre objetos, técnicamente estaba refiriéndome a los MÉTODOS que podemos llamar.

En SELENIUM tenemos implementados una buena cantidad de métodos como *ACTIONS CHAINS*. Cuando ejecutamos una operación, o llamamos un método de *ACTIONS CHAINS*, el mismo se guarda en una QUEUE y se van realizando en forma serial.

Entre los MÉTODOS más importantes tenemos:

Hay muchos más. Arriba vimos:

busqueda.send_keys("Husserl")
busqueda.submit()