🧩 ¿Qué es una Clase en programación?

🧩 ¿Qué es una Clase en programación?

Llegamos a uno de los conceptos más importantes de la Programación Orientada a Objetos — y el que más vas a usar en tu día a día como automation tester. Una clase es el molde a partir del cual se crean objetos: define qué datos tiene y qué puede hacer. En esta clase lo vemos en código real.


🔍 La clase en acción

El mejor lugar para entender qué es una clase es mirar una. Este es el ejemplo que vimos en la clase — una page object real para la home de The Free Range Tester:

python

import time

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC


class TheFreeRangeTesterHomePage:
    URL = 'https://www.thefreerangetester.com'

    NAVIGATION_BUTTON = (By.XPATH, "//a[@class='mouse']")
    POPUP_INICIO = (By.CSS_SELECTOR, 'div.mc-closeModal')

    def __init__(self, browser):
        self.browser = browser

    def load(self):
        self.browser.get(self.URL)

    def close_popup(self):
        popup = self.browser.find_element(*self.POPUP_INICIO)
        popup.click()

    def enable_navigation(self):
        time.sleep(2)
        navigation_button = self.browser.find_element(*self.NAVIGATION_BUTTON)
        navigation_button.click()

Mirá la estructura: la clase TheFreeRangeTesterHomePage tiene atributos — la URL y los locators de los elementos — y tiene métodos — las acciones que se pueden realizar en esa página: cargarla, cerrar el popup, activar la navegación. Todo lo que tiene que ver con esa página vive adentro de esa clase. Nada más, nada menos.

Cuando un test necesite interactuar con la home, va a crear una instancia de esta clase y va a usar sus métodos. No va a saber nada de XPaths ni de CSS selectors — solo va a llamar a load(), close_popup() o enable_navigation(). Eso es exactamente el poder de encapsular comportamiento en una clase.


📚 Para profundizar

  • Classes — Python Documentation — La documentación oficial de Python sobre clases. Clara, completa y con ejemplos progresivos.

  • Page Object Model — Selenium Documentation — Cómo Selenium recomienda usar clases para estructurar el código de automation.


🤔 Para reflexionar

  • ¿Por qué creés que conviene tener una clase separada por cada página de la aplicación en lugar de poner todo en un solo archivo?

  • Si la URL de la home cambiara mañana, ¿en cuántos lugares tendrías que hacer el cambio con esta estructura? ¿Qué pasaría si no usaras una clase?

Programación y trabajo con código para Testers

Comprar ahoraSaber más

Introducción al curso

  • 🤔 ¿Cómo hacer preguntas?
  • 🔥 Recomendaciones para sacarle el mayor provecho al curso
  • 💪🏻 Actividades del curso

Programación Orientada a Objetos

  • 🤓 ¿Qué es un lenguaje de programación?3
  • ⚗️ ¿Cuáles son los lenguajes más buscados para Automation Testing?1
  • ⚱️ ¿Qué es la Programación Orientada a Objetos y cómo se relaciona con Automation?1
  • 1️⃣ Primer pilar: El encapsulamiento.
  • 2️⃣ Segundo pilar: La herencia
  • 3️⃣ Tercer pilar: La abstracción.
  • 4️⃣ Cuarto y último pilar: El polimorfismo.
  • ⚙️ Aplicaciones reales de estos pilares en Automation Testing
  • 🙋🏻‍♂️ Cuestionario del módulo
  • 💡Asignación

Conceptos clave de la Programación Orientada a Objetos para Automation Testing

  • 🧩 ¿Qué es una Clase en programación?2
  • 👑 ¿Qué es el Método?
  • 📡 ¿Qué son los Tipos?
  • 🕹️ Los Condicionales2
  • 🧲 Los Loops2
  • 🖇️ Los bloques Try and Catch
  • 📋 Las listas: Qué son y para qué se usan?
  • 🗞️ Diccionarios en Programación: ¿Qué son y para qué sirven?
  • 🧑🏻‍💻 Cuestionario: Conceptos clave de la Programación Orientada a Objetos para Automation Testing
  • 💡Asignación

Los principios SOLID

  • 🧃 El Principio de la Responsabilidad Única: Qué es y cómo sirve en Automation?
  • 🐕 El Principio de Abierto/Cerrado: El concepto más importante de la POO.
  • 🎞️ El Principio de Sustitución de Liskov: De la mano de la abstracción.
  • 🔩 El Principio de Segregación de Interfaces: Más independencia, menos consecuencia
  • 🖲️ El Principio de Inversión de Dependencias: Separando los componentes.
  • 🔥 Cuestionario: Principios SOLID en Automation Testing
  • 💡Asignación

Trabajando con código en un repositorio

  • 🧑🏻‍💻 ¿Qué es Source Control Management?
  • 🏖️ ¿Por qué es necesario el SCM en un proyecto de Automation?
  • 🎩 Piezas de un repositorio de Automation.
  • 👀 Branches y Master: ¿Qué son y por qué usarlos?
  • 💡 Comandos para trabajar en equipo con SCM: Fork y Clone.
  • 🧢 Comandos para trabajar en equipo con SCM: Add, Commit y Push.
  • 👏🏻 Comandos para trabajar en equipo con SCM: fetch y pull.
  • 🔥 Comandos para trabajar en equipo con SCM: Checkout y creación de branches.
  • ⚔️ Cuestionario: Trabajando con código en un repositorio
  • 🔥Asignación

Lenguajes: Java

  • 🤠 Estructura básica de un programa en Java
  • 🍋 Tipos de datos y variables en Java
  • 🐭 Operadores en Java
  • 🎋 Control de flujo1
  • 🌋 Arrays en Java
  • 🔥Asignación

Conclusión y más...

  • 🤖 ¡Dejá tu testimonio inmortalizado en la web!