Exemple #1
0
class SearchCases(unittest.TestCase):
    def setUp(self):
        option = Options()
        option.add_argument('start-maximized')
        option.add_argument('incognito')

        #option.add_argument('--headless')
        self.driver = webdriver.Chrome(chrome_options=option)
        self.driver.get('http://automationpractice.com/index.php')
        self.driver.implicitly_wait(5)
        #self.driver.maximize_window()
        self.indexPage = PageIndex(self.driver)
        self.itemsPage = PageItems(self.driver)
        self.itemPage = PageItem(self.driver)

    def test_search_no_elements(self):
        self.indexPage.search('hola')
        self.assertEqual(self.itemsPage.return_no_element_text(),
                         'No results were found for your search "hola"')
        self.driver.save_screenshot('no_element.jpg')

    @unittest.skip('Not needed now')
    def test_search_find_dresses(self):
        self.indexPage.search('dress')

        self.assertTrue('DRESS' in self.itemsPage.return_section_title())

    @unittest.skip('Not needed now')
    def test_search_find_tshirts(self):
        self.indexPage.search('t-shirt')

        self.assertTrue('T-SHIRT' in self.itemsPage.return_section_title())

    @unittest.skip('Not needed now')
    def test_tarea(self):
        self.indexPage.search('t-shirt')
        self.itemsPage.click_orange_button()
        self.itemPage.enter_quantity('25')
        #self.itemPage.add_elements(3)

    @unittest.skip('Not needed now')
    def test_selections(self):
        self.indexPage.search('t-shirts')
        self.itemsPage.select_by_text('Product Name: A to Z')
        time.sleep(3)
        self.itemsPage.select_by_value('reference:asc')
        time.sleep(3)
        self.itemsPage.select_by_index(2)
        time.sleep(3)

    def tearDown(self):
        self.driver.close()
        self.driver.quit()
class SearchCases(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Chrome('chromedriver.exe')
        self.driver.get('http://automationpractice.com/index.php')
        self.indexPage = PageIndex(self.driver)
        self.itemPage = PageItems(self.driver)

    def test_search_no_elements(self):
        self.indexPage.search('hola')
        time.sleep(2)
        #result = driver.find_element_by_xpath('//*[@id="center_column"]/p').text
        #expected_result = 'No results were found for your search "Hola"'
        self.assertEqual(self.itemPage.return_no_element_text(),
                         'No results were found for your search "hola"')

    def test_search_find_dress(self):
        self.indexPage.search('dress')
        time.sleep(2)
        self.assertTrue('DRESS' in self.itemPage.return_section_titule())

    def test_search_find_tshirt(self):
        self.indexPage.search('t-shirts')
        time.sleep(2)
        self.assertTrue('T-SHIRTS' in self.itemPage.return_section_titule())

    def tearDown(self):
        self.driver.close()
        self.driver.quit()
Exemple #3
0
class TeatroColon(unittest.TestCase):
    def setUp(self):
        path = 'C:\\Automation\\geckodriver'
        self.driver = Firefox(executable_path=path)
        self.driver.implicitly_wait(10)
        self.driver.get('https://teatrocolon.org.ar/es')
        self.indexPage = PageIndex(self.driver)

    def test_donaciones(self):
        self.driver.find_element_by_css_selector('.nav-entradas').click()
        self.assertEqual(
            self.driver.find_element_by_css_selector(
                'h1.page-header > span:nth-child(1)').text, 'DONACIONES')

    def test_busqueda_orquesta(self):
        self.indexPage.search('orquesta')
        self.driver.find_element_by_css_selector(
            'div.item_search:nth-child(4) > span:nth-child(1) > h4:nth-child(1) > strong:nth-child(1) > a:nth-child(1)'
        ).click()
        self.assertEqual(
            self.driver.find_element_by_css_selector(
                'h1.page-header > span:nth-child(1)').text,
            'ORQUESTA FILARMÓNICA DE BUENOS AIRES')

    def test_noticias(self):
        self.driver.find_element_by_xpath(
            '/html/body/div[1]/header/div[2]/div/nav[2]/ul/li[9]/a').click()
        self.driver.find_element_by_css_selector('.link-vermas').click()
        self.driver.find_element_by_name('categories[23]').click()
        self.assertTrue(
            'ISATC en Mar del Plata' in self.driver.
            find_element_by_partial_link_text('ISATC en Mar del Plata').text)

    def tearDown(self):
        self.driver.close()
        self.driver.quit()
Exemple #4
0
class SearchCases(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Chrome('Chromedriver.exe')
        self.driver.get = ('http://automationpractice.com/index.php')
        self.indexPage = PageIndex(self.driver)
        self.itemsPage = PageItems(driver)

        self.itemsPage = PageItem(self.driver)

    @unittest.skip("not needed now")
    def test_search_no_elements(self):

        self.indexPage.search('hola')

        time.sleep(2)
        self.assertEqual(self.itemsPage.return_no_element_text(),
                         'No results were fouund for your search "hola"')

    @unittest.skip("not needed now")
    def test_search_find_dresses(self):

        self.indexPage.search('dres')
        time.sleep(2)
        self.assertTrue('DRESS' in self.itemsPage.return_section_title())

    @unittest.skip("not needed now")
    def test_search_find_tshirts(self):
        self.indexPage.search('t-shirt')
        time.sleep(2)
        self.assertTrue('T-SHIRT' in self.itemsPage.return_section_title())

    def test_tarea(self):

        self.indexPage.search('t-shirt')
        time.sleep(2)
        self.itemsPage.click_orange_button()
        time.sleep(2)
        self.itemsPage.enter_quantity('25')
        time.sleep(3)

    def tearDown(self):
        self.driver.close()
        self.driver.quit()
Exemple #5
0
class SearchCases(unittest.TestCase):
    def setUp(self):
        option = Options()
        option.add_argument("start-maximized")
        #option.add_argument("incognito")
        option.add_argument("--headless")  #NO SE LEVANTA EL BROWSER
        self.driver = webdriver.Chrome('chromedriver.exe',
                                       chrome_options=option)
        self.driver.get("http://automationpractice.com/index.php")
        self.driver.implicitly_wait(5)
        #self.driver.set_window_position(150, 200)
        #self.driver.maximize_window() #Ventana completa
        #self.driver.set_window_size(200, 240)
        self.indexPage = PageIndex(self.driver)
        self.itemsPage = PageItems(self.driver)

    @unittest.skip("Negativo")
    def test_search_no_elements(self):
        self.indexPage.search('Hola')
        self.assertEqual(self.itemsPage.return_no_element_text(),
                         'No results were found for your search "Hola"')

    @unittest.skip("Not needed now")
    def test_search_find_tshirts(self):
        self.indexPage.search('t-shirt')
        self.assertTrue('T-SHIRT' in self.itemsPage.return_section_title())

    def test_selections(self):
        self.indexPage.search('t-shirt')
        self.itemsPage.select_by_text('Product Name: A to Z')
        time.sleep(4)
        self.itemsPage.select_by_value('reference:asc')
        #self.driver.save_screenshot('Lista.png') #TOMAR FOTO
        time.sleep(3)
        self.itemsPage.select_by_index(3)

    def tearDown(self):
        self.driver.close()
        self.driver.quit()
class SearchCases(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Chrome('chromedriver.exe')
        self.driver.get('http://automationpractice.com/index.php')
        self.indexPage = PageIndex(
            self.driver)  #le paso el web driver a la clase PageIndex
        self.itemsPage = PageItems(self.driver)

    def test_search_no_elements(self):
        # self.driver.find_element_by_id('search_query_top').send_keys('hola')
        # self.driver.find_element_by_name('submit_search').click()
        self.indexPage.search('hola')
        time.sleep(2)
        # self.assertEqual(self.driver.find_element_by_xpath('//*[@id="center_column"]/p').text, 'No results were found for your search "hola"')
        self.assertEqual(self.itemsPage.return_no_element_text(),
                         'No results were found for your search "hola"')

    def test_search_find_dresses(self):
        # self.driver.find_element_by_id('search_query_top').send_keys('dress')
        # self.driver.find_element_by_name('submit_search').click()
        self.indexPage.search('dress')
        time.sleep(2)
        # self.assertTrue('DRESS' in self.driver.find_element_by_xpath('//*[@id="center_column"]/p').text)
        self.assertTrue('DRESS' in self.itemsPage.return_section_title())

    def test_search_find_tshirts(self):
        # self.driver.find_element_by_id('search_query_top').send_keys('t-shirt')
        # self.driver.find_element_by_name('submit_search').click()
        self.indexPage.search('t-shirt')
        time.sleep(2)
        # self.assertTrue('T-SHIRT' in self.driver.find_element_by_xpath('//*[@id="center_column"]/h1/span[1]').text)
        self.assertTrue('T-SHIRT' in self.itemsPage.return_section_title())

    def tearDown(self):
        self.driver.close()
        self.driver.quit()
Exemple #7
0
class SearchCases(unittest.TestCase):

    # Método que tiene las Precondiciones
    def setUp(self):
        self.driver = webdriver.Chrome('chromedriver.exe')
        # Abrir el browser
        self.driver.get('http://automationpractice.com/index.php')

        # Creamos un objeto de la clase PageIndex, le vamos a pasar el parámetro driver.
        self.indexPage = PageIndex(self.driver)

        # Creamos un objeto de la clase PageItems, le vamos a pasar el parámetro driver.
        self.itemsPage = PageItems(self.driver)

    def test_search_no_elements(self):
        self.indexPage.search('hola')
        # Vamos a esperar dos segundos, para que cargue la página
        # con sus elementos.
        time.sleep(2)

        self.assertEqual(self.itemsPage.return_no_element_text(),
                         'No results were found for your search "hola"')

        # Verificamos que si ingreso un texto que no existe,
        # se muestre el mensaje en la página  => No results were found for your search "hola"
        # Mediante el assertEqual, comparamos si las dos variables son iguales.
        # Cuando encontremos el xpath, vamos a extraer el texto, para asignarlo a la variable
        # result y así compararla con el texto de la variable expected_result
        # result = driver.find_element_by_xpath('//*[@id="center_column"]/p').text
        # expected_result = 'No results were found for your search "hola"'

        # Comentamos las dos variables de arriba, en el assert reemplazamos los valores de las
        # variables y nos ahorramos dos lineas de código
        #self.assertEqual(self.driver.find_element_by_xpath('//*[@id="center_column"]/p').text, 'No results were found for your search "hola"')

    def test_search_find_dresses(self):
        self.indexPage.search('dress')
        time.sleep(2)

        self.assertTrue("DRESS" in self.itemsPage.return_section_title())

        # Mediante el assertTrue.
        # cuando encontremos el xpath, vamos a extraer el texto, para asignarlo a la variable
        # result y así compararla con el texto de la variable expected_result
        #result = driver.find_element_by_xpath('//*[@id="center_column"]/h1/span[1]').text
        #expected_result = "DRESS"

        # el texto DRESS se encuentra en el texto que tiene la variable result.
        # Comentamos las dos variables de arriba, en el assert reemplazamos los valores de las
        # variables y nos ahorramos dos lineas de código
        #self.assertTrue("DRESS" in self.driver.find_element_by_xpath('//*[@id="center_column"]/h1/span[1]').text)

    def test_search_find_tshirts(self):
        self.indexPage.search('t-shirts')
        time.sleep(2)

        self.assertTrue('T-SHIRTS' in self.itemsPage.return_section_title(),
                        self.itemsPage.return_section_title())

        # El 3er parámetro es un mensaje, el cual muestra lo que tiene como texto encontrado
        # mediante el xpath.
        # Si no se encuentra el texto que ingresamos "T-SHIRTS" en el texto que encuentra el xpath
        # muestra el texto que ha encontrado.
        # Este es el error que se muestra => AssertionError: False is not true : "T-SHIRT"
        #self.assertTrue('T-SHIRTS' in self.driver.find_element_by_xpath('//*[@id="center_column"]/h1/span[1]').text, self.driver.find_element_by_xpath('//*[@id="center_column"]/h1/span[1]').text)

    # Método que tiene las Postcondiciones, que quiero que pase, cuando termina una prueba.
    def tearDown(self):
        # Cerrar el browser
        self.driver.close()
        # Cerrar la sesión del webdriver
        self.driver.quit()
Exemple #8
0
class SearchCases(unittest.TestCase):

    # Método que tiene las Precondiciones
    def setUp(self):

        # Clase XI, instanciamos la clase Options
        option = Options()
        # Podemos ahora pasarle argumentos, en este caso el navegador se va a mostrar maximizado
        option.add_argument('start-maximized')
        # 2do argumento, podemos testear en modo incognito
        option.add_argument('incognito')

        # Considerar, levantar un browser en modo gráfico con su ventanita, es muy pesado y usa tiempo.
        # por eso existe algo llamado Modo Headless, no se va a ver, pero si se va a ejecutar de manera
        # rápida, entonces no se deben ejecutar las pruebas en modo gráfico.
        # 4to Argumento, se debe empezar a ejecutar en Modo Headless. Para este caso, vamos habilitar
        # todos los casos de pruebas
        # Comentamos por un momento, para hacer una prueba, cuando estemos programando el caso de prueba
        # no debemos trabajar en modo headless, cuando ya este listo el testcase, activamos tal modo
        option.add_argument('--headless')

        # 3er argumento, sino queremos que chrome use el gpu (hardware de la tarjeta gráfica)
        #option.add_argument('--disable-gpu')

        # Por tanto, tenemos dos formas o maneras de controlar ciertas cosas del browser.
        # - A partir de Selenium
        # - A partir de las opciones de Chrome (Recomendable)

        # Ahora voy a pasar al webdriver.Chrome un segundo argumento con esto comentamos los maximize, size y position
        self.driver = webdriver.Chrome('chromedriver.exe',
                                       chrome_options=option)

        # Clase XI, se va a presentar maximizada la pantalla del navegador
        # self.driver.maximize_window()
        # También, podemos personalizar el tamaño de la ventana del navegador, ancho x alto
        #self.driver.set_window_size(200, 240)
        # Podemos indicar la posición donde se va a mostrar el navegador
        #self.driver.set_window_position(150, 150)

        # Abrir el browser
        self.driver.get('http://automationpractice.com/index.php')
        # Agregando el implicit wait, tu timeout a partir de acá son 5''
        self.driver.implicitly_wait(5)

        # Creamos un objeto de la clase PageIndex, le vamos a pasar el parámetro driver.
        self.indexPage = PageIndex(self.driver)

        # Creamos un objeto de la clase PageItems, le vamos a pasar el parámetro driver.
        self.itemsPage = PageItems(self.driver)

        # Creamos un objeto de la clase PageItem, le vamos a pasar el parámetro driver.
        self.itemPage = PageItem(self.driver)

    #@unittest.skip("Not needed now")
    def test_search_no_elements(self):
        #try:
        self.indexPage.search('hola')
        # Vamos a esperar dos segundos, para que cargue la página
        # con sus elementos.
        #time.sleep(2)

        #self.assertEqual(self.itemsPage.return_no_element_text(), 'No results were found for your search "saludo"') # hola
        self.assertEqual(self.itemsPage.return_no_element_text(),
                         'No results were found for your search "hola"')

        # Verificamos que si ingreso un texto que no existe,
        # se muestre el mensaje en la página  => No results were found for your search "hola"
        # Mediante el assertEqual, comparamos si las dos variables son iguales.
        # Cuando encontremos el xpath, vamos a extraer el texto, para asignarlo a la variable
        # result y así compararla con el texto de la variable expected_result
        # result = driver.find_element_by_xpath('//*[@id="center_column"]/p').text
        # expected_result = 'No results were found for your search "hola"'

        # Comentamos las dos variables de arriba, en el assert reemplazamos los valores de las
        # variables y nos ahorramos dos lineas de código
        #self.assertEqual(self.driver.find_element_by_xpath('//*[@id="center_column"]/p').text, 'No results were found for your search "hola"')

        # Clase XI, para capturar la pantalla de evidencia, hacemos lo siguiente, agregamos un nombre con su extensión
        # Otro caso sería que si la prueba falla se va a tomar la evidencia, cambiamos "hola" por "Saludo"
        # Agregamos el try.
        # Recomendación, no se debe utilizar try para los Assert.
        self.driver.save_screenshot('no_element.jpg')
        #except:
        # Si hay un error debe generar una evidencia de la misma
        #self.driver.save_screenshot('errorss.jpg')

    @unittest.skip("Not needed now")
    def test_search_find_dresses(self):
        self.indexPage.search('dress')
        #time.sleep(2)

        self.assertTrue("DRESS" in self.itemsPage.return_section_title())

        # Mediante el assertTrue.
        # cuando encontremos el xpath, vamos a extraer el texto, para asignarlo a la variable
        # result y así compararla con el texto de la variable expected_result
        #result = driver.find_element_by_xpath('//*[@id="center_column"]/h1/span[1]').text
        #expected_result = "DRESS"

        # el texto DRESS se encuentra en el texto que tiene la variable result.
        # Comentamos las dos variables de arriba, en el assert reemplazamos los valores de las
        # variables y nos ahorramos dos lineas de código
        #self.assertTrue("DRESS" in self.driver.find_element_by_xpath('//*[@id="center_column"]/h1/span[1]').text)

    @unittest.skip("Not needed now")
    def test_search_find_tshirts(self):
        self.indexPage.search('t-shirts')
        #time.sleep(2)

        self.assertTrue('T-SHIRTS' in self.itemsPage.return_section_title(),
                        self.itemsPage.return_section_title())

        # El 3er parámetro es un mensaje, el cual muestra lo que tiene como texto encontrado
        # mediante el xpath.
        # Si no se encuentra el texto que ingresamos "T-SHIRTS" en el texto que encuentra el xpath
        # muestra el texto que ha encontrado.
        # Este es el error que se muestra => AssertionError: False is not true : "T-SHIRT"
        #self.assertTrue('T-SHIRTS' in self.driver.find_element_by_xpath('//*[@id="center_column"]/h1/span[1]').text, self.driver.find_element_by_xpath('//*[@id="center_column"]/h1/span[1]').text)

    # Ejercicio de meter ropa en el carro
    @unittest.skip("Not needed now")
    def test_tarea(self):
        self.indexPage.search('T-Shirts')
        #time.sleep(2)

        self.itemsPage.click_orange_button()

        # Como vamos a otra página, agregamos 2'' para que carguen los elementos
        self.itemPage.enter_quantity('25')
        # Vamos a clickear 3 veces, pasamos al parámetro el valor 3.
        self.itemPage.add_elements(3)

        # Asigno a una variable lo que devuelve el método, en este caso el valor del elemento
        number = self.itemPage.get_number_of_elements()
        # Verificamos me diante el assert si el valor es igual a 28
        self.assertTrue(number == '28')

        # Vamos a agregar unos segundos para verificar que se muestre la cantidad ingresada
        #time.sleep(3)

    @unittest.skip("Not needed now")
    def test_selection(self):
        # Ingresamos T-shirts
        self.indexPage.search('t-shirts')

        # Seleccionamos el elemento por el texto, es decir el parámetro text
        self.itemsPage.select_by_text('Product Name: A to Z')
        time.sleep(3)

        # Seleccionamos el elemento por el value, es decir el parámetro value
        self.itemsPage.select_by_value('reference:asc')
        time.sleep(3)

        # Seleccionamos el elemento por el índice, es decir el parámetro number
        self.itemsPage.select_by_index(4)
        time.sleep(3)

    # Método que tiene las Postcondiciones, que quiero que pase, cuando termina una prueba.
    def tearDown(self):
        # Cerrar el browser
        self.driver.close()
        # Cerrar la sesión del webdriver
        self.driver.quit()
Exemple #9
0
class SearchCases(unittest.TestCase):

    # Método que tiene las Precondiciones
    def setUp(self):
        self.driver = webdriver.Chrome('chromedriver.exe')
        # Abrir el browser
        self.driver.get('http://automationpractice.com/index.php')
        # Agregando el implicit wait, tu timeout a partir de acá son 5''
        self.driver.implicitly_wait(5)

        # Creamos un objeto de la clase PageIndex, le vamos a pasar el parámetro driver.
        self.indexPage = PageIndex(self.driver)

        # Creamos un objeto de la clase PageItems, le vamos a pasar el parámetro driver.
        self.itemsPage = PageItems(self.driver)

        # Creamos un objeto de la clase PageItem, le vamos a pasar el parámetro driver.
        self.itemPage = PageItem(self.driver)

    @unittest.skip("Not needed now")
    def test_search_no_elements(self):
        self.indexPage.search('hola')
        # Vamos a esperar dos segundos, para que cargue la página
        # con sus elementos.
        #time.sleep(2)

        self.assertEqual(self.itemsPage.return_no_element_text(), 'No results were found for your search "hola"')

        # Verificamos que si ingreso un texto que no existe,
        # se muestre el mensaje en la página  => No results were found for your search "hola"
        # Mediante el assertEqual, comparamos si las dos variables son iguales.
        # Cuando encontremos el xpath, vamos a extraer el texto, para asignarlo a la variable
        # result y así compararla con el texto de la variable expected_result
        # result = driver.find_element_by_xpath('//*[@id="center_column"]/p').text
        # expected_result = 'No results were found for your search "hola"'

        # Comentamos las dos variables de arriba, en el assert reemplazamos los valores de las
        # variables y nos ahorramos dos lineas de código
        #self.assertEqual(self.driver.find_element_by_xpath('//*[@id="center_column"]/p').text, 'No results were found for your search "hola"')

    @unittest.skip("Not needed now")
    def test_search_find_dresses(self):
        self.indexPage.search('dress')
        #time.sleep(2)

        self.assertTrue("DRESS" in self.itemsPage.return_section_title())

        # Mediante el assertTrue.
        # cuando encontremos el xpath, vamos a extraer el texto, para asignarlo a la variable
        # result y así compararla con el texto de la variable expected_result
        #result = driver.find_element_by_xpath('//*[@id="center_column"]/h1/span[1]').text
        #expected_result = "DRESS"

        # el texto DRESS se encuentra en el texto que tiene la variable result.
        # Comentamos las dos variables de arriba, en el assert reemplazamos los valores de las
        # variables y nos ahorramos dos lineas de código
        #self.assertTrue("DRESS" in self.driver.find_element_by_xpath('//*[@id="center_column"]/h1/span[1]').text)

    @unittest.skip("Not needed now")
    def test_search_find_tshirts(self):
        self.indexPage.search('t-shirts')
        #time.sleep(2)

        self.assertTrue('T-SHIRTS' in self.itemsPage.return_section_title(), self.itemsPage.return_section_title())

        # El 3er parámetro es un mensaje, el cual muestra lo que tiene como texto encontrado
        # mediante el xpath.
        # Si no se encuentra el texto que ingresamos "T-SHIRTS" en el texto que encuentra el xpath
        # muestra el texto que ha encontrado.
        # Este es el error que se muestra => AssertionError: False is not true : "T-SHIRT"
        #self.assertTrue('T-SHIRTS' in self.driver.find_element_by_xpath('//*[@id="center_column"]/h1/span[1]').text, self.driver.find_element_by_xpath('//*[@id="center_column"]/h1/span[1]').text)


    # Ejercicio de meter ropa en el carro
    def test_tarea(self):
        self.indexPage.search('t-shirts')
        #time.sleep(2)

        self.itemsPage.click_orange_button()

        # Como vamos a otra página, agregamos 2'' para que carguen los elementos
        self.itemPage.enter_quantity('25')
        # Vamos a clickear 3 veces, pasamos al parámetro el valor 3.
        self.itemPage.add_elements(3)

        # Asigno a una variable lo que devuelve el método, en este caso el valor del elemento
        number = self.itemPage.get_number_of_elements()
        # Verificamos me diante el assert si el valor es igual a 28
        self.assertTrue(number == '28')

        # Vamos a agregar unos segundos para verificar que se muestre la cantidad ingresada
        #time.sleep(3)



    # Método que tiene las Postcondiciones, que quiero que pase, cuando termina una prueba.
    def tearDown(self):
        # Cerrar el browser
        self.driver.close()
        # Cerrar la sesión del webdriver
        self.driver.quit()
Exemple #10
0
class TestCase(unittest.TestCase):
    #Precondiciones
    def setUp(self):
        self.driver = webdriver.Chrome('chromedriver.exe')
        self.driver.get('http://automationpractice.com/index.php')
        self.driver.implicitly_wait(5)

        #Creamos un objeto de tipo PageIndex(clase)
        self.indexPage = PageIndex(self.driver)
        #Creamos un objeto de tipo PageResult(clase)
        self.resultPage = PageResult(self.driver)
        #Creamos un objeto de tipo PageItem(clase)
        self.itemPage = PageItem(self.driver)

    @unittest.skip('Not need now')
    def test_search_no_element(self):
        self.indexPage.search('Hola')
        self.assertEqual(self.resultPage.return_no_element_text(),
                         'No results were found for your search "Hola"')

    @unittest.skip('Not need now')
    def test_search_find_dresses(self):
        self.indexPage.search('dress')
        self.assertTrue('DRESS' in self.resultPage.return_section_title())

    @unittest.skip('Not need now')
    def test_search_find_tshirts(self):
        self.indexPage.search('t-shirts')
        self.assertTrue('T-SHIRTS' in self.resultPage.return_section_title(),
                        self.resultPage.return_section_title())

    @unittest.skip('Not need now')
    def test_tarea(self):
        self.indexPage.search('t-shirts')
        self.resultPage.click_orange_button()
        self.itemPage.enter_quantity('25')
        self.itemPage.add_elements(3)
        # Asigno a una variable lo que devuelve el método (28), en este caso el valor del elemento
        number = self.itemPage.get_number_of_elements()
        # Verificamos mediante el assert si el valor es igual a 28 (lo que nosotros sabemos)
        self.assertTrue(number == '28')
        # Vamos a agregar unos segundos solo para verificar que se muestre la cantidad ingresada, luego comentamos
        time.sleep(3)

    #@unittest.skip('Not need now')
    def test_selection(self):
        self.indexPage.search('t-shirts')
        # Seleccionamos el elemento por el texto, es decir el parámetro text
        self.resultPage.select_by_text('Product Name: A to Z')
        # Vamos a agregar unos segundos solo para verificar que se muestre la cantidad ingresada, luego comentamos
        time.sleep(3)

        # Seleccionamos el elemento por el valor, es decir el parámetro value
        self.resultPage.select_by_value('reference:asc')
        # Vamos a agregar unos segundos solo para verificar que se muestre la cantidad ingresada, luego comentamos
        time.sleep(3)

        # Seleccionamos el elemento por el indice (4 => Product Name: Z to A), es decir el parámetro number
        self.resultPage.select_by_index(4)
        # Vamos a agregar unos segundos solo para verificar que se muestre la cantidad ingresada, luego comentamos
        time.sleep(3)

    #Postcondiciones, que quiero que pase, cuando termine una prueba
    def tearDown(self):
        self.driver.close()
        self.driver.quit()
class TestCase(unittest.TestCase):
    #Precondiciones
    def setUp(self):

        #Clase XI, instanciamos la clase Options
        option = Options()
        #Podemos ahora pasarle argumentos, en este caso el navegador, se va a mostrar maximizado
        option.add_argument('start-maximized')
        #Podemos testear en modo incognito
        option.add_argument('incognito')
        #Considerar, levantar un browser en modo gráfico (en el explorador), es muy pesado y usa tiempo.
        #Por eso existe algo llamado Modo Headless, no se va a ver, pero si se va a ejecutar de manera
        #rápida (background).
        #Cuando estemos programando el caso de prueba, no debemos trabajar en modo headless, cuando
        #este listo el testcase, activamos tal modo.
        option.add_argument('--headless')
        #Por tanto, tenemos dos formas o maneras de controlar ciertas cosas del browser.
        #1. A partir de Selenium
        #2. A partir de las opciones de Chrome (Recomendable)

        # Ahora voy a pasar al webdriver.Chrome un segundo argumento, el objeto option de la clase Options.
        self.driver = webdriver.Chrome('chromedriver.exe',
                                       chrome_options=option)

        #self.driver = webdriver.Chrome('chromedriver.exe')
        self.driver.get('http://automationpractice.com/index.php')
        self.driver.implicitly_wait(5)

        #Creamos un objeto de tipo PageIndex(clase)
        self.indexPage = PageIndex(self.driver)
        #Creamos un objeto de tipo PageResult(clase)
        self.resultPage = PageResult(self.driver)
        #Creamos un objeto de tipo PageItem(clase)
        self.itemPage = PageItem(self.driver)

    #@unittest.skip('Not need now')
    def test_search_no_element(self):
        self.indexPage.search('Hola')
        self.assertEqual(self.resultPage.return_no_element_text(),
                         'No results were found for your search "Hola"')

        # Clase XI, para capturar la pantalla de evidencia, hacemos lo siguiente, agregamos el nombre del archivo
        # con su extensión. Considerar, no se debe utilizar try para los Assert.
        self.driver.save_screenshot('no_elements.jpg')

    #@unittest.skip('Not need now')
    def test_search_find_dresses(self):
        self.indexPage.search('dress')
        self.assertTrue('DRESS' in self.resultPage.return_section_title())

    #@unittest.skip('Not need now')
    def test_search_find_tshirts(self):
        self.indexPage.search('t-shirts')
        self.assertTrue('T-SHIRTS' in self.resultPage.return_section_title(),
                        self.resultPage.return_section_title())

    #@unittest.skip('Not need now')
    def test_tarea(self):
        self.indexPage.search('t-shirts')
        self.resultPage.click_orange_button()
        self.itemPage.enter_quantity('25')
        self.itemPage.add_elements(3)
        # Asigno a una variable lo que devuelve el método (28), en este caso el valor del elemento
        number = self.itemPage.get_number_of_elements()
        # Verificamos mediante el assert si el valor es igual a 28 (lo que nosotros sabemos)
        self.assertTrue(number == '28')
        # Vamos a agregar unos segundos solo para verificar que se muestre la cantidad ingresada, luego comentamos
        time.sleep(3)

    #@unittest.skip('Not need now')
    def test_selection(self):
        self.indexPage.search('t-shirts')
        # Seleccionamos el elemento por el texto, es decir el parámetro text
        self.resultPage.select_by_text('Product Name: A to Z')
        # Vamos a agregar unos segundos solo para verificar que se muestre la cantidad ingresada, luego comentamos
        time.sleep(3)

        # Seleccionamos el elemento por el valor, es decir el parámetro value
        self.resultPage.select_by_value('reference:asc')
        # Vamos a agregar unos segundos solo para verificar que se muestre la cantidad ingresada, luego comentamos
        time.sleep(3)

        # Seleccionamos el elemento por el indice (4 => Product Name: Z to A), es decir el parámetro number
        self.resultPage.select_by_index(4)
        # Vamos a agregar unos segundos solo para verificar que se muestre la cantidad ingresada, luego comentamos
        time.sleep(3)

    #Postcondiciones, que quiero que pase, cuando termine una prueba
    def tearDown(self):
        self.driver.close()
        self.driver.quit()