CursosEmpresasBlogLiveConfPrecios

¡Hola, mundo!

Clase 6 de 24 • Curso de Introducción a Selenium con Python

Clase anteriorSiguiente clase

Contenido del curso

Conocer el ecosistema de Selenium

  • 1
    Por qué aprender Selenium y qué verás

    Por qué aprender Selenium y qué verás

    03:15 min
  • 2
    Historia de Selenium

    Historia de Selenium

    09:05 min
  • 3
    Otras herramientas de testing y automatización

    Otras herramientas de testing y automatización

    03:40 min

Preparar entorno de trabajo

  • 4
    Configurar entorno de trabajo

    Configurar entorno de trabajo

    01:43 min
  • 5

    Compatibilidad con Python 3.9 y aprendiendo a utilizar múltiples versiones

    01:44 min
  • 6
    ¡Hola, mundo!

    ¡Hola, mundo!

    Viendo ahora

Utilizar comandos básicos

  • 7
    Encontrar elementos con find_element

    Encontrar elementos con find_element

    15:23 min
  • 8
    Preparar assertions y test suites

    Preparar assertions y test suites

    13:50 min
  • 9

    Entender las clases WebDriver y WebElement

    01:18 min

Interactuar con elementos

  • 10
    Manejar form, textbox, checkbox y radio button

    Manejar form, textbox, checkbox y radio button

    13:37 min
  • 11
    Manejar dropdown y listas

    Manejar dropdown y listas

    07:42 min
  • 12
    Manejar alert y pop-up

    Manejar alert y pop-up

    06:05 min
  • 13
    Automatizar navegación

    Automatizar navegación

    03:54 min

Sincronizar pruebas

  • 14
    Demora implícita y explícita

    Demora implícita y explícita

    08:38 min
  • 15

    Condicionales esperadas

    00:44 min

Retos

  • 16
    Agregar y eliminar elementos

    Agregar y eliminar elementos

    09:16 min
  • 17
    Elementos dinámicos

    Elementos dinámicos

    06:46 min
  • 18
    Controles dinámicos

    Controles dinámicos

    08:01 min
  • 19
    Typos

    Typos

    05:43 min
  • 20
    Ordenar tablas

    Ordenar tablas

    07:12 min

Metodologías de Trabajo

  • 21
    Data Driven Testing (DDT)

    Data Driven Testing (DDT)

    13:35 min
  • 22
    Page Object Model (POM)

    Page Object Model (POM)

    10:35 min

Cierre del curso

  • 23
    Realizar una prueba técnica

    Realizar una prueba técnica

    11:33 min
  • 24
    Conclusiones

    Conclusiones

    01:43 min
  • Tomar el examen del curso
    • JOHN YAUYO

      JOHN YAUYO

      student•
      hace 5 años

      Para el caso de que tu S.O. sea Ubuntu y tengas instalado el navegador Google Chrome debes correr previamente en la terminal:

      • sudo apt-get install chromium-chromedriver

      y tu setUpClass debe ser así:

      @classmethod def setUpClass(cls): cls.driver = webdriver.Chrome(executable_path='/usr/bin/chromedriver') driver = cls.driver driver.implicitly_wait(10)
        Andrés Corral

        Andrés Corral

        student•
        hace 5 años

        Uf, haber leido esto antes .... tenia instalado chromium pero no lo pude usar, tuve que instalar chrome

        Irvin Cabal

        Irvin Cabal

        student•
        hace 5 años

        que buena ayuda, gracias

      Juan Ignacio Echenique Olsina

      Juan Ignacio Echenique Olsina

      student•
      hace 5 años

      Buen dia les comparto mi codigo por si a alguien le sirve.

      # Con unittest nos podemos traer todas nuestras pruebas import unittest # Ayuda a orquestar cada una de las pruebas que estaremos # ejecutando junto con los reportes from pyunitreport import HTMLTestRunner # Para comunicarnos con el navegador usamos webdriver from selenium import webdriver class HelloWorld(unittest.TestCase): # Realiza todo lo necesario antes de empezar la prueba @classmethod # Decorador para que las distintas paginas corran en una sola pestaña def setUpClass(cls): cls.driver = webdriver.Chrome(executable_path=r"./chromedriver.exe") driver = cls.driver # esperamos 10 seg antes de realizar la siguiente accion driver.implicitly_wait(10) # Caso de prueba donde realizaremos una serie de acciones para que el navegador las automatice def test_hello_world(self): driver = self.driver driver.get('https://www.platzi.com') def visit_wikipedia(self): self.driver.get('https://www.wikipedia.com') # Cerramos el navegador una vez terminadas las pruebas @classmethod def tearDownClass(cls): cls.driver.quit() if __name__ == "__main__": unittest.main(verbosity = 2, testRunner = HTMLTestRunner(output = 'reportes', report_name = 'hello-world-report'))
        Miguel Angel Velazquez Romero

        Miguel Angel Velazquez Romero

        student•
        hace 5 años

        ¿En que SO lo ejecutaste?

        Juan Ignacio Echenique Olsina

        Juan Ignacio Echenique Olsina

        student•
        hace 5 años

        En window por? te dio algun error?

      Matías Candi

      Matías Candi

      student•
      hace 5 años
      selenium1.png
      selenium2.png
      Lo bueno de tener una pc lenta es que en estos casos se nota la diferencia. Casi un 50% :D
        Juan Antonio Aramburo Pasapera

        Juan Antonio Aramburo Pasapera

        student•
        hace 4 años

        Chale :'v

        Moises Abel Avila  Garcia

        Moises Abel Avila Garcia

        student•
        hace 3 años

        gracias

      Diego Cesar Lerma Torres

      Diego Cesar Lerma Torres

      student•
      hace 4 años

      Llevo literalmente una semana intentando hacer esta prueba. Uso WSL2, pero me daba error siempre que intentaba realizar la prueba (y simplemente no me abría la página de Chrome).

      Intenté usar Anaconda para instalar las librerías que necesitaba, ejecutar el programa desde la PowerShell, instalar todo tipo de entornos virtuales. Incluso intenté instalar una interfaz gráfica para la terminal de WSL en Windows (un proceso bastante laborioso y además muy inseguro, puesto que requiere otorgar permisos a este programa que no me gustaron).

      Al final mi solución fue instalar Ubuntu en una computadora que no es mi principal. Me funcionó perfecto en un sistema LInux.

      ¡Además, será mi oportunidad para familizarme con este sistema operativo!

        Mauricio Gonzalez Falcon

        Mauricio Gonzalez Falcon

        student•
        hace 4 años

        Total, llevo 2 semanas en este lio! Pero retomo hoy la prueba a ver si con interfaces gráficas y reinstalar wsl2 funciona todo.

        Santiago Ramos Morales

        Santiago Ramos Morales

        student•
        hace 3 años

        Me funcionó sin el teardown

      Ángel Ricardo Estrada Sevilla

      Ángel Ricardo Estrada Sevilla

      student•
      hace 5 años

      El profesor menciona que se debe colocar la liga completa, en mi caso uso windows 10, uso python 3.8 y no fue necesario.

      self.driver = webdriver.Chrome(executable_path = r'./chromedriver.exe')
        Jose Reinaldo Roca Cruz

        Jose Reinaldo Roca Cruz

        student•
        hace 5 años

        Si en realidad no es necesario colocar la ruta completa,lo único importante en window es colocar el .exe

      Vidale C.

      Vidale C.

      student•
      hace 4 años

      Si te aparece el siguiente error: DeprecationWarning: executable_path has been deprecated, please pass in a Service object self.driver = webdriver.Chrome(executable_path=r"./chromedriver.exe")
      Te comparto la solución que a mi me sirvio (Estoy usando windows 11 y la feca es 20/02/2022)

      • Instalar la siguiente librería

      pip3 install webdriver_manager

      • Importar en el código

      from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriverManager

      • Cambiar la linea self.driver donde llamas el chromedriver por

      self.driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))

      y listo, todo el demás código que se muestra en el vídeo queda igual.

        Bruno Guillaume Hernández Villamil

        Bruno Guillaume Hernández Villamil

        student•
        hace 4 años

        Perfecto, este es el que funciona para Windows, muchas gracias. Pero me queda duda de qué generaba el error, ¿es por la versión de Chrome?

        Luis Antonio Ibarra Salgado

        Luis Antonio Ibarra Salgado

        student•
        hace 4 años

        en Mac igual me soluciono el problema, gracias!!

        Solo una pregunta, entonces si tengo el manager ya no tengo que descargar el driver que el profesor descomprimío? o lo tengo que seguir descargando?

      Sebastian Rueda

      Sebastian Rueda

      student•
      hace 3 años

      Si están en Windows y les sale un error, el problema está en el ejecutable y en que el término executable_path ya está deprecado.

      Para solucionarlo primero onstalé lo siguiente:

      pip3 install webdriver-manager

      Y luego mi código quedó así:

      import unittest from pyunitreport import HTMLTestRunner from selenium import webdriver from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriverManager class HelloWorld(unittest.TestCase): @classmethod def setUpClass(cls): cls.driver = webdriver.Chrome(service = Service(ChromeDriverManager().install())) cls.driver.implicitly_wait(10) def test_hello_world(self): self.driver.get('https://www.netflix.com') def test_visit_wikipedia(self): self.driver.get('https://www.wikipedia.org') @classmethod def tearDownClass(cls) -> None: cls.driver.quit() if __name__ == "__main__": unittest.main(verbosity = 2, testRunner = HTMLTestRunner(output = 'reports', report_name = 'hello-world-report'))

      Con esto no hay necesidad de descargar el chromedriver en sus computadoras y tampoco necesitan usar WSL porque todo corre en Powershell. Espero les sirva.

        Magno Stiven Bueno

        Magno Stiven Bueno

        student•
        hace 3 años

        Esto si me solucionó !!!

        Jafet Pintle

        Jafet Pintle

        student•
        hace 3 años

        Grande! Lo estaba tratando de hacer en WSL pero este no me permitia abrir el chrome de windows directamente y era mucho enrollo. Tu código me funcionó de maravilla:)

      Alexander Silvera

      Alexander Silvera

      student•
      hace 5 años

      Hola paso también la solución al error que tenia al no poder abrir el navegador y correr los tests del scripts del hola mundo:

      import unittest from pyunitreport import HTMLTestRunner from selenium import webdriver class HelloWorld(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome(executable_path='./chromedriver') driver = self.driver driver.implicitly_wait(10) def test_hello_world(self): driver = self.driver driver.get('http://demo-store.seleniumacademy.com/') def test_visit_wikipedia(self): self.driver.get('https://www.wikipedia.org') def tearDown(self): self.driver.quit() if __name__ == "__main__": unittest.main(verbosity=2)

      el error era de indentación en la última línea de código, recien lo pude ver gracias al apoyo del profesor Héctor. Lo paso por si alguien tiene el mismo problema y no ve cual puede ser el error, saludos y gracias Héctor.

        Juan Camilo Sarmiento Reyes

        Juan Camilo Sarmiento Reyes

        student•
        hace 5 años

        Gracias!, Tienes un typo con las palabras class y def falta un espacio con la definición del nombre de la clase y las funciones respectivamente

      Esteban parra

      Esteban parra

      student•
      hace 5 años

      Una duda? en que momento inicializo e instancio my clase HelloWorld y ejecuto los medodos? o cuando heredo de unittest el ejecuta en orden descendente las funciones de mi clase HelloWorld??

        Daniel Enrique Merchan Merchan

        Daniel Enrique Merchan Merchan

        student•
        hace 5 años

        Tengo esta misma duda... No entiendo donde se inicializaron la clase y donde se llamaron los métodos.

        Alfonso Morán

        Alfonso Morán

        student•
        hace 4 años

        misma duda

      Valentin Francisco Blanco

      Valentin Francisco Blanco

      student•
      hace 5 años

      Que hace verbosity = 2?? (en la linea 25)

        Héctor Daniel Vega Quiñones

        Héctor Daniel Vega Quiñones

        teacher•
        hace 5 años

        verbosity es una bandera que te da detalles sobre la salida al resultado final de tu script, si añades el parámetro 2 entonces te dará aún más detalles.

        Puedes probar el script eliminando esta bandera y colocando 1 o 2 cómo parámetro :)

      Korpi delfin

      Korpi delfin

      student•
      hace 5 años

      Les comparto mi código ya con comentarios. Entorno : windows 10 + python 3.8

      import unittest from pyunitreport import HTMLTestRunner from selenium import webdriver class HelloWorld(unittest.TestCase): #va a ejecutar todo lo necesario antes de hacer una prueba #va a preparar el entorno de la prueba @classmethod # para que abra las pestañas en una misma ventana def setUpClass(cls): cls.driver = webdriver.Chrome(executable_path = r'.\chromedriver.exe') driver = cls.driver driver.implicitly_wait(10) #aquí va lo que queremos que la prueba haga def test_hello_world(self): driver = self.driver driver.get('https://platzi.com/') def test_visit_wikipedia(self): self.driver.get('https://es.wikipedia.org/') #cierra el navegador para evitar #fuga de recursos @classmethod #decorador para que no se cierre la ventana después de la primera prueba def tearDownClass(cls): cls.driver.quit() if __name__ == "__main__": unittest.main(verbosity = 2, testRunner = HTMLTestRunner(output = 'reportes', report_name='hello-world-report'))
        Michelle Duque De La Rosa

        Michelle Duque De La Rosa

        student•
        hace 4 años

        Muchas gracias

      Adrian Gutierrez Ramirez

      Adrian Gutierrez Ramirez

      student•
      hace 5 años

      Hola! Estoy siguiendo el curso con Ubuntu corriendo en WSL2, estuve un rato navegando y me encontre con que la unica forma de correr el driver de Chrome con esta configuración es llamandolo desde la ruta contenedora en Windows, al intentar ejecutar el codigo me sale el siguiente error

      chromedriver.png
      No he podido solucionarlo y en la red no hay mucha información, un comentario de hace 4 meses dice que no es posible correr Selenium en WSL2 pero por el mensaje de error creo que solo se debe a que no logra ejecutar el driver. ¿Tiene alguna solución?

        Daniel Verdugo

        Daniel Verdugo

        student•
        hace 5 años

        tengo el mismo error, espero alguien pueda ayudarnos.

        Alan Vazquez

        Alan Vazquez

        student•
        hace 5 años

        Creo que el error es debido a que desde WSL2 no puede abrir el navegador, a menos que lo tengas instalado en tu distribucion (Las aplicaciones que tienes en Windows y en tu distribucion de WSL2 son diferentes) Incluso aunque procedas con la instalacion norma de chrome ( o firefox ) dentro de WSL hay otro problema... Nativamente no es posible abrir aplicaciones GUI ( O con interfaz ) Para solucionar esto te recomiendo leer lo siguiente WSL2 + GUI Setup

      RRHH Holistor

      RRHH Holistor

      student•
      hace 3 años

      dejare la palabra frustrante, porque es eso lo que merece, 20 error me saltan en cada clase y el instructor dicta un montón de cosas sin dar una buena explicación. no deben olvidar que la persona que ingresa al curso no sabe y quiere aprender para que sirve cada cosa. abandono el curso.

      Isay Humberto Lucas Hernandez

      Isay Humberto Lucas Hernandez

      student•
      hace 4 años

      Hola amigos, . A mi me causó mucha curiosidad el porque al agregar el decorador @classmethod nuestras pruebas (en este caso visitas al sitio web de Platzi y Wikipedia) se hicieron en la misma ventana. Investigando encontré lo siguiente: . Los métodos setUp y tearDown se ejecutan cada vez que se lanza una prueba (métodos que empiezan con el prefijo test_). Por ello nuestra ventana se abre para visitar un sitio, se cierra y se vuelve a abrir para visitar el otro. . Para evitar esto, se agrega el decorador @classmethod, este decorador permite recibir la clase como primer parámetro dentro de un método y ejecutar directamente dicho método sin depender de la instancia de la clase que lo contiene. Wow, wow, wow! Espera, yo también me confundí cuando leí esto por primera vez. Pero puedes encontrar una explicación más clara justo AQUI. . Pero la magia no ocurre solo con el decorador @classmethod, si intentas ejecutar las pruebas aún con el decorador (y la debida modificación de los métodos setUp y tearDown) verás que las pruebas aún ocurren en ventanas separadas 😱😱 Esto se debe a que parte de la magia va de la mano con los métodos setUpClass y tearDownClass. La razón es porque 2 últimos métodos se ejecutan para toda la clase y no solo para cada método de pruebas. WOOOOOW! . Si lo vemos con un flujo encontramos lo siguiente:

      Captura de Pantalla 2021-10-12 a la(s) 13.10.56.png
      Espero les haya servido la explicación, ¡saludos y nunca paren de aprender! 💚💚💚

        Juan Sebastian Ladino Mendieta

        Juan Sebastian Ladino Mendieta

        student•
        hace 3 años

        tengo una pregunta, si no utilizo el decorador me funciona el código, pero si lo uso la segunda prueba no me funciona me sale este error:

        "MaxRetryError

        HTTPConnectionPool(host='localhost', port=56367): Max retries exceeded with url: /session/57d2dff66a7bc97b8481527bf6842cd4/url (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused'))"

      Brady Principe Quiñones Principe Quiñones

      Brady Principe Quiñones Principe Quiñones

      student•
      hace 5 años

      Hola, me sale este error

      ModuleNotFoundError: No module named 'pyunitreport'
        Jose Reinaldo Roca Cruz

        Jose Reinaldo Roca Cruz

        student•
        hace 5 años

        Buenas brandy,instalaste todas la librerías de la anterior clase,si es así me puedes mostrar tu código,y los comandos que utilizas para acceder a la terminal

        Brady Principe Quiñones Principe Quiñones

        Brady Principe Quiñones Principe Quiñones

        student•
        hace 5 años

        Hola, importe lo que indicó, mi codigo es el sigueinte:

        import unittest from pyunitreport import HTMLTestRunner from selenium import webdriver class HelloWorld(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome(executable_path= r'D://otros//Selenium//chromedriver_win32//chromedriver.exe') driver = self.driver driver.implicitly_wait(10) def test_hello_world(self): driver = self.driver driver.get('https://www.platzi.com') def tearDown(self): self.driver.quit() if __name__ == "__main__": unittest.main(verbosity = 2, testRunner = HTMLTestRunner(output= 'reportes',report_name= 'helllo_world_report'))
      Luis Enrique Sanchez Piñerua

      Luis Enrique Sanchez Piñerua

      student•
      hace 5 años

      Si quieren una forma mas sencilla de descargar el driver, pueden descargarse con pip la libreria “webdriver_manager”.

      from webdriver_manager.chrome import ChromeDriverManager driver = webdriver.Chrome(ChromeDriverManager().install())
        Laura Itzel Hernández Fernández

        Laura Itzel Hernández Fernández

        student•
        hace 4 años

        tenia este error: (cannot find Chrome binary) y tu aporte me ayudo. gracias

        Fredy Alexander Izquierdo Dominguez

        Fredy Alexander Izquierdo Dominguez

        student•
        hace 4 años

        Tenía el error WebDriverException Message: Service ./chromedriver unexpectedly exited. Status code was: -5, pero tu aporte me fue de gran ayuda para solucionarlo. Gracias!

      Brandon Gutierrez

      Brandon Gutierrez

      student•
      hace 5 años

      Me aparece un error si me podrian ayudar se los agardezco mucho,

      import unittest from pyunitreport import HTMLTestRunner from selenium import webdriver class HellorWorld(unittest.TestCase): def setUp(self): #ejecuta todo lo necesario antes de la prueba self.driver= webdriver.chrome(execute_path= r"/chromedriver.exe") driver = self.driver driver.implicitly_wait(10) def test_hello_world(self): #serie de acciones para que el navegador se automatice driver=self.driver driver.get("https://www.platzi.com") def tearDown(self): self.driver.quit() #cerrar ventana del navegador para cualquier prueba if __name__== "__main__": unittest.main(verbosity=2,testRunner=HTMLTestRunner(output="reportes",report_name="hello-world-report"))

      Esto me aparece al ejecutar Traceback (most recent call last): File "hello_world.py", line 2, in <module> from pyunitreport import HTMLTestRunner ModuleNotFoundError: No module named 'pyunitreport'

        Massimo Di Berardino

        Massimo Di Berardino

        student•
        hace 5 años

        Hola Brandon, tienes un typo en la línea 2, en realidad debería ser: from PyUnitReport import HTMLTestRunner escrito de esa manera con mayúsculas

        Miguel Andres Rendon Reyes

        Miguel Andres Rendon Reyes

        student•
        hace 5 años

        Men, es un cuento complejo, pero básicamente lo que tienes que hacer es: Revisa que tengas una versión de python de la 3.8 para abajo, si no, entonces tienes hacer a como dé lugar una actualización o regresión a la versión 3.8 e instalar el módulo: pyunitreport.

        Claro está que también tienes que verificar que tengas instalado pyunitreport

      José Manuel Piña Rodríguez

      José Manuel Piña Rodríguez

      student•
      hace 5 años

      He revisado los aportes y varios hemos tenido el mismo problema pero aun no se ha tenido solucion, es con respecto a la libreria pyunitreport que arroja el siguiente error . ModuleNotFoundError: no module named ‘pyunitreport’ Esta fue instalada en consola, en la caperta del archivo pero sigue sin reconocerla. Este es mi codigo

      import unittest from pyunitreport import HTMLTestRunner from selenium import webdriver class HelloWorld(unittest.TestCase): @classmethod def setUpClass(cls): cls.driver = webdriver.Chrome(executable_path = r'./chromedriver.exe') driver = cls.driver driver.implicitly_wait(10) def test_hello_world(self): driver = self.driver driver.get('https://www.platzi.com') def test_visit_wikipedia(self): self.driver.get('https://www.triunico.com') @classmethod def tearDownClass(cls): cls.driver.quit() if __name__ == '__main__': unittest.main(verbosity=2, testRunner= HTMLTestRunner(output = 'reportes', report_name = 'hello-world-report'))

      Nota : Mi codigo realiza las peticiones de ambos sitios y me genera el reporte, aun asi en mi editor de codigo se mantiene el error.

        Victor Luis Landaeta Jimenez

        Victor Luis Landaeta Jimenez

        student•
        hace 5 años

        Hola, me parece que debes de quitar el .exe cuando llamas al driver chrome.

        Saludos!!!

        Andrés Felipe Mesa David

        Andrés Felipe Mesa David

        student•
        hace 5 años

        Hola! A mí me estaba pasando igual y logré solucionarlo de la siguiente manera:

        Notmodule.png

        *Debes tener instalado pip y ubicarte la carpeta donde tengas tu código

        1. Instalo el entorno virtual con el comando virtualenv venv
        virtualenv.png
        1. Activas el entorno virtual con venv\Scripts\activate.bat
        activavenv.png
        1. En ese ambiente virutal instalas selenium y pyunitreport
        instalseleandpyunit.png
        1. Con pip freeze revisas que te hayan quedado instaladas y luego ejecutas
        run.png
      Mauricio Gonzalez Falcon

      Mauricio Gonzalez Falcon

      student•
      hace 4 años

      Haré un tutorial de como ver el curso desde windows sub-system for linux.

      Espero pronto les guste :D

      daniel saltarin castillo

      daniel saltarin castillo

      student•
      hace 5 años

      Por si a alguien le aparece un error al importar selenium o pyunitreport en visual studio code, esto es un error visual del editor, no genera ningún error al tratar de ejecutar el script, aunque si lo desea puede usar otro IDE como PyCham.

    Escuelas

    • Desarrollo Web
      • Fundamentos del Desarrollo Web Profesional
      • Diseño y Desarrollo Frontend
      • Desarrollo Frontend con JavaScript
      • Desarrollo Frontend con Vue.js
      • Desarrollo Frontend con Angular
      • Desarrollo Frontend con React.js
      • Desarrollo Backend con Node.js
      • Desarrollo Backend con Python
      • Desarrollo Backend con Java
      • Desarrollo Backend con PHP
      • Desarrollo Backend con Ruby
      • Bases de Datos para Web
      • Seguridad Web & API
      • Testing Automatizado y QA para Web
      • Arquitecturas Web Modernas y Escalabilidad
      • DevOps y Cloud para Desarrolladores Web
    • English Academy
      • Inglés Básico A1
      • Inglés Básico A2
      • Inglés Intermedio B1
      • Inglés Intermedio Alto B2
      • Inglés Avanzado C1
      • Inglés para Propósitos Específicos
      • Inglés de Negocios
    • Marketing Digital
      • Fundamentos de Marketing Digital
      • Marketing de Contenidos y Redacción Persuasiva
      • SEO y Posicionamiento Web
      • Social Media Marketing y Community Management
      • Publicidad Digital y Paid Media
      • Analítica Digital y Optimización (CRO)
      • Estrategia de Marketing y Growth
      • Marketing de Marca y Comunicación Estratégica
      • Marketing para E-commerce
      • Marketing B2B
      • Inteligencia Artificial Aplicada al Marketing
      • Automatización del Marketing
      • Marca Personal y Marketing Freelance
      • Ventas y Experiencia del Cliente
      • Creación de Contenido para Redes Sociales
    • Inteligencia Artificial y Data Science
      • Fundamentos de Data Science y AI
      • Análisis y Visualización de Datos
      • Machine Learning y Deep Learning
      • Data Engineer
      • Inteligencia Artificial para la Productividad
      • Desarrollo de Aplicaciones con IA
      • AI Software Engineer
    • Ciberseguridad
      • Fundamentos de Ciberseguridad
      • Hacking Ético y Pentesting (Red Team)
      • Análisis de Malware e Ingeniería Forense
      • Seguridad Defensiva y Cumplimiento (Blue Team)
      • Ciberseguridad Estratégica
    • Liderazgo y Habilidades Blandas
      • Fundamentos de Habilidades Profesionales
      • Liderazgo y Gestión de Equipos
      • Comunicación Avanzada y Oratoria
      • Negociación y Resolución de Conflictos
      • Inteligencia Emocional y Autogestión
      • Productividad y Herramientas Digitales
      • Gestión de Proyectos y Metodologías Ágiles
      • Desarrollo de Carrera y Marca Personal
      • Diversidad, Inclusión y Entorno Laboral Saludable
      • Filosofía y Estrategia para Líderes
    • Diseño de Producto y UX
      • Fundamentos de Diseño UX/UI
      • Investigación de Usuarios (UX Research)
      • Arquitectura de Información y Usabilidad
      • Diseño de Interfaces y Prototipado (UI Design)
      • Sistemas de Diseño y DesignOps
      • Redacción UX (UX Writing)
      • Creatividad e Innovación en Diseño
      • Diseño Accesible e Inclusivo
      • Diseño Asistido por Inteligencia Artificial
      • Gestión de Producto y Liderazgo en Diseño
      • Diseño de Interacciones Emergentes (VUI/VR)
      • Desarrollo Web para Diseñadores
      • Diseño y Prototipado No-Code
    • Contenido Audiovisual
      • Fundamentos de Producción Audiovisual
      • Producción de Video para Plataformas Digitales
      • Producción de Audio y Podcast
      • Fotografía y Diseño Gráfico para Contenido Digital
      • Motion Graphics y Animación
      • Contenido Interactivo y Realidad Aumentada
      • Estrategia, Marketing y Monetización de Contenidos
    • Desarrollo Móvil
      • Fundamentos de Desarrollo Móvil
      • Desarrollo Nativo Android con Kotlin
      • Desarrollo Nativo iOS con Swift
      • Desarrollo Multiplataforma con React Native
      • Desarrollo Multiplataforma con Flutter
      • Arquitectura y Patrones de Diseño Móvil
      • Integración de APIs y Persistencia Móvil
      • Testing y Despliegue en Móvil
      • Diseño UX/UI para Móviles
    • Diseño Gráfico y Arte Digital
      • Fundamentos del Diseño Gráfico y Digital
      • Diseño de Identidad Visual y Branding
      • Ilustración Digital y Arte Conceptual
      • Diseño Editorial y de Empaques
      • Motion Graphics y Animación 3D
      • Diseño Gráfico Asistido por Inteligencia Artificial
      • Creatividad e Innovación en Diseño
    • Programación
      • Fundamentos de Programación e Ingeniería de Software
      • Herramientas de IA para el trabajo
      • Matemáticas para Programación
      • Programación con Python
      • Programación con JavaScript
      • Programación con TypeScript
      • Programación Orientada a Objetos con Java
      • Desarrollo con C# y .NET
      • Programación con PHP
      • Programación con Go y Rust
      • Programación Móvil con Swift y Kotlin
      • Programación con C y C++
      • Administración Básica de Servidores Linux
    • Negocios
      • Fundamentos de Negocios y Emprendimiento
      • Estrategia y Crecimiento Empresarial
      • Finanzas Personales y Corporativas
      • Inversión en Mercados Financieros
      • Ventas, CRM y Experiencia del Cliente
      • Operaciones, Logística y E-commerce
      • Gestión de Proyectos y Metodologías Ágiles
      • Aspectos Legales y Cumplimiento
      • Habilidades Directivas y Crecimiento Profesional
      • Diversidad e Inclusión en el Entorno Laboral
      • Herramientas Digitales y Automatización para Negocios
    • Blockchain y Web3
      • Fundamentos de Blockchain y Web3
      • Desarrollo de Smart Contracts y dApps
      • Finanzas Descentralizadas (DeFi)
      • NFTs y Economía de Creadores
      • Seguridad Blockchain
      • Ecosistemas Blockchain Alternativos (No-EVM)
      • Producto, Marketing y Legal en Web3
    • Recursos Humanos
      • Fundamentos y Cultura Organizacional en RRHH
      • Atracción y Selección de Talento
      • Cultura y Employee Experience
      • Gestión y Desarrollo de Talento
      • Desarrollo y Evaluación de Liderazgo
      • Diversidad, Equidad e Inclusión
      • AI y Automatización en Recursos Humanos
      • Tecnología y Automatización en RRHH
    • Finanzas e Inversiones
      • Fundamentos de Finanzas Personales y Corporativas
      • Análisis y Valoración Financiera
      • Inversión y Mercados de Capitales
      • Finanzas Descentralizadas (DeFi) y Criptoactivos
      • Finanzas y Estrategia para Startups
      • Inteligencia Artificial Aplicada a Finanzas
      • Domina Excel
      • Financial Analyst
      • Conseguir trabajo en Finanzas e Inversiones
    • Startups
      • Fundamentos y Validación de Ideas
      • Estrategia de Negocio y Product-Market Fit
      • Desarrollo de Producto y Operaciones Lean
      • Finanzas, Legal y Fundraising
      • Marketing, Ventas y Growth para Startups
      • Cultura, Talento y Liderazgo
      • Finanzas y Operaciones en Ecommerce
      • Startups Web3 y Blockchain
      • Startups con Impacto Social
      • Expansión y Ecosistema Startup
    • Cloud Computing y DevOps
      • Fundamentos de Cloud y DevOps
      • Administración de Servidores Linux
      • Contenerización y Orquestación
      • Infraestructura como Código (IaC) y CI/CD
      • Amazon Web Services
      • Microsoft Azure
      • Serverless y Observabilidad
      • Certificaciones Cloud (Preparación)
      • Plataforma Cloud GCP

    Platzi y comunidad

    • Platzi Business
    • Live Classes
    • Lanzamientos
    • Executive Program
    • Trabaja con nosotros
    • Podcast

    Recursos

    • Manual de Marca

    Soporte

    • Preguntas Frecuentes
    • Contáctanos

    Legal

    • Términos y Condiciones
    • Privacidad
    • Tyc promociones
    Reconocimientos
    Reconocimientos
    Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
    Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
    Logo reconocimientoPrimera Startup EdTech · 2018
    Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
    Logo reconocimientoCEO Mejor Emprendedor del año · 2024
    De LATAM conpara el mundo
    YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads