Lista de comandos para WebDriver con su descripción, comparación y ejemplo:
https://www.techbeamers.com/important-selenium-webdriver-commands/
Conocer el ecosistema de Selenium
Por qué aprender Selenium y qué verás
Historia de Selenium
Otras herramientas de testing y automatización
Preparar entorno de trabajo
Configurar entorno de trabajo
Compatibilidad con Python 3.9 y aprendiendo a utilizar múltiples versiones
¡Hola, mundo!
Utilizar comandos básicos
Encontrar elementos con find_element
Preparar assertions y test suites
Entender las clases WebDriver y WebElement
Interactuar con elementos
Manejar form, textbox, checkbox y radio button
Manejar dropdown y listas
Manejar alert y pop-up
Automatizar navegación
Sincronizar pruebas
Demora implícita y explícita
Condicionales esperadas
Retos
Agregar y eliminar elementos
Elementos dinámicos
Controles dinámicos
Typos
Ordenar tablas
Metodologías de Trabajo
Data Driven Testing (DDT)
Page Object Model (POM)
Cierre del curso
Realizar una prueba técnica
Conclusiones
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Héctor Vega
Aportes 23
Preguntas 7
Lista de comandos para WebDriver con su descripción, comparación y ejemplo:
https://www.techbeamers.com/important-selenium-webdriver-commands/
import unittest
from selenium import webdriver
from time import sleep
class CompareProducts(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome(executable_path = r'.\chromedriver.exe')
driver = self.driver
driver.implicitly_wait(30)
driver.maximize_window()
driver.get("https://www.google.com/")
def test_browser_navigation(self):
driver = self.driver
search_field = driver.find_element_by_name('q')
search_field.clear()
search_field.send_keys('platzi')
search_field.submit()
driver.back()#retroceder navegador
sleep(3) #espera 3 segundos
driver.forward() #avanzar
sleep(3)
driver.refresh() # actualizar página
sleep(3)
def tearDown(self):
self.driver.implicitly_wait(3)
self.driver.close()
if __name__ == "__main__":
unittest.main(verbosity = 2)
Hola. estoy tratando de acceder a Platzi con Selenium pero no me permite, me detecta como un Bot, alguna solución para este tipo de sitios?
mi internet es tan lento que no necesito sleep XD
Para que el tiempo de espera no sea tan robótico se puede usar la librería random.
Se importa la librería: import random
Sentencia: sleep(random.uniform(5.0, 10.0))
Tiempo de espera entre 5 a 10 segundos, por ejemplo. Saludos!
Comparto mi codigo fuente
import unittest
from pyunitreport import HTMLTestRunner
from selenium import webdriver
from time import sleep
class Alerts(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome("D:\webdriver-chrome/chromedriver.exe")
driver = self.driver
driver.implicitly_wait(50)
driver.maximize_window()
driver.get('https://google.com/')
def test_browser_navigation(self):
driver = self.driver
search_field = driver.find_element_by_name('q')
search_field.clear()
search_field.send_keys('platzi')
search_field.submit()
driver.back() #Regresar a la pagina anterior
sleep(3)
driver.forward() #Avanzar a la pagina posterior
sleep(3)
driver.refresh() #Actualizar la pagina
sleep(3)
def tearDown(self):
self.driver.quit()
if __name__ == "__main__":
unittest.main(verbosity=2,testRunner=HTMLTestRunner(output="reportes", report_name="prueba_asssert"))
Las clases de este módulo fueron muy sencillas, entendibles y bien explicadas. Si sabes inglés es muy fácil de entender qué es lo que hacen las instrucciones de Selenium.
noo, Profe que cool, esto esta magnifico, lo estoy implementando en una encuesta diaria que se hace en la empresa, ahora necesito que esto se ejecute diario ¿Como se haría?
En mi caso, hubo veces que me sentí obligado a pone un sleep, porque de lo tan rápido que va, no llega a cargar la página y me da un error.
import unittest
from pyunitreport import HTMLTestRunner
from selenium import webdriver
class CompareProducts(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome(executable_path='./chromedriver')
driver = self.driver
driver.implicitly_wait(30)
driver.maximize_window()
driver.get('https://www.google.com/')
def test_browser_navigation(self):
driver = self.driver
search_field = driver.find_element_by_id('q')
search_field.clear()
search_field.send_keys('Platzi')
search_field.submit()
driver.back()
driver.forward()
driver.refresh()
def tearDown(self):
self.driver.close()
if __name__ == '__main__':
unittest.main(verbosity=2, testRunner= HTMLTestRunner(output= 'reports', report_name= 'hello-world-report'))
cuando uso
search_field('platzi')
arroja search_field(‘platzi’)
TypeError: ‘WebElement’ object is not callable
tuve que hacer la prueba con
search_field.send_keys('platzi')
El clásico sleep, puede ser contra producente para hacer automatización, con lo que para eso podemos importar otros módulos que se verán más adelante.
Para trabajar con los elementos del navegador como retroceder utilizamos: instancia.forwad() y shaaaa, luego para retroceder, solo tenemos que poner: instancia.back()
import unittest
from selenium import webdriver
from time import sleep #este modulo es para realizar las pausas y ver lo que sucede en el navegador
class NavigationTest(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome(executable_path=r'./chromedriver.exe')
driver = self.driver
driver.implicitly_wait(30)
driver.maximize_window()
driver.get('https://google.com/')
def test_browser_navigation(self):
driver = self.driver
#identificamos la barra de busqueda
search_field = driver.find_element_by_name('q')
#limpiamos
search_field.clear()
#enviamos el termino de busqueda
search_field.send_keys('Platzi')
#envio la busqueda
search_field.submit()
#retrocedo una pagina atras en el navegador
driver.back()
#pongo una pausa para ver lo que hace el navegafor
sleep(3)
#avanzo una pagina adelante
driver.forward()
#pongo una pausa para ver lo que hace el navegafor
sleep(3)
#refresco la ventana del navegador
driver.refresh()
#pongo una pausa para ver lo que hace el navegafor
sleep(3)
def tearDown(self):
self.driver.quit()
if __name__ == '__main__':
unittest.main(verbosity=2)
23 comandos esenciales de Selenium WebDriver
En esta clase pudimos navegar en la web de manera automática
automatic_navigation.py
import unittest
from pyunitreport import HTMLTestRunner
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
class NavigationTest(unittest.TestCase):
@classmethod
def setUpClass(cls):
options = Options()
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
cls.driver = webdriver.Chrome(executable_path = '/usr/bin/chromedriver' , options=options)
driver = cls.driver
driver.get('https://google.com')
def test_browser_navigation(self):
driver = self.driver
search_field = driver.find_element_by_name('q')
search_field.clear()
search_field.send_keys('platzi')
search_field.submit()
driver.back() #Retroceder en la navegación web
driver.forward() #Avanzar en la navegación web
driver.refresh() #Actualizar ventana del navegador
@classmethod
def tearDownClass(cls):
cls.driver.quit()
if __name__ == '__main__':
unittest.main(verbosity = 2)
Entendido
import unittest
from selenium import webdriver
from api_data_mock import ApiDataMock
from selenium.webdriver.support.ui import Select # Modulo para poder seleccionar del dropdown
from time import sleep
class NavigationTest(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome(executable_path = r'./chromedriver.exe')
driver = self.driver
driver.implicitly_wait(30)
driver.maximize_window()
driver.get('https://google.com/')
def test_browser_navigation(self):
driver = self.driver
search_field = driver.find_element_by_name('q')
#Borrar lo que hay en la barra de busqueda
search_field.clear()
search_field.send_keys('cursos flask')
search_field.submit()
#Par retorceder
driver.back()
sleep(1)
#Para avanzar
driver.forward()
sleep(1)
#Para refrescar
driver.refresh()
sleep(1)
def tearDown(self):
self.driver.implicitly_wait(5)
self.driver.close()
if __name__ == '__main__':
unittest.main(verbosity=2)
Excelente, comprobado.
Super poder navegar esto demuestra que selenium automatiza las majorias de las acciones del usuario
Donde esta la seccion de archivos? No la puedo encontrar.
Slds
Tampoco puedo encontrar la sección de ‘Archivos’, tenemos que ver el archivo que menciona el profesor.
Excelente clase realmente la veo muy necesaria al momento de realizar, practicas. aqui les comparto el codigo de la clase con cada una de las cosas vistas explicadas.
import unittest
from selenium import webdriver
#Importar tiempo de demora entre los procesos
from time import sleep #De la libreria time traeremos el modulo sleep
class CompareProducts(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Firefox(executable_path= r'./geckodriver.exe')
driver = self.driver
driver.implicitly_wait(10)
driver.maximize_window()
driver.get('https://google.co.ve/')
def test_browser_navigation(self):
driver = self.driver
search_field = driver.find_element_by_name('q')#Elemento de cuadro de busqueda
search_field.clear()#Limpiar texto
search_field.send_keys('wow')#Escribir en el cuadro de busqueda
search_field = driver.find_element_by_xpath('/html/body/div[1]/div[3]/form/div[2]/div[1]/div[3]/center/input[1]').click() #Realizar click en boton de busqueda
#Retroceder una pagina, avanzar y refrescar la ventana
driver.back()#Para retroceder una pagina
sleep(3) #Agregar tiempo de espera
driver.forward()#Para ir a la pagina siguiente
sleep(3) #Agregar tiempo de espera
driver.refresh()#Recargar la pagina
sleep(3) #Agregar tiempo de espera
def tearDown(self):
driver = self.driver
driver.implicitly_wait(10)
driver.close()
if __name__ == "__main__":
unittest.main(verbosity= 2)
Aqui la documentacion de la clase
estoy encantado con este curso!! Muy útil y emocionante el potencial que tiene el saber esto…
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?