No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Automatizar navegación

13/24
Recursos

Aportes 23

Preguntas 7

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

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…