예제 #1
0
    def test(self):
        base_url = "https://letskodeit.teachable.com/pages/practice"
        driver = webdriver.Firefox()
        driver.maximize_window()
        hw = HandyWrappers(driver)
        driver.get(base_url)
        element_result = hw.elementPresenceCheck("name", By.ID)
        print(element_result)

        driver.quit()
예제 #2
0
    def test(self):
        baseUrl = "https://letskodeit.teachable.com/pages/practice"
        driver = webdriver.Firefox()
        driver.maximize_window()
        driver.implicitly_wait(10)
        hw = HandyWrappers(driver)
        driver.get(baseUrl)

        elementResult1 = hw.isElementPresent("name", By.ID)
        print(str(elementResult1))

        elementResult2 = hw.elementPresenceCheck("//input[@id='name1']",
                                                 By.XPATH)
        print(str(elementResult2))
    def test(self):
        baseUrl = "https://letskodeit.teachable.com/pages/practice"
        chrome_driver_path = os.path.abspath(
            '..') + "\\Drivers\\chromedriver.exe"

        driver = webdriver.Chrome(chrome_driver_path)
        driver.maximize_window()
        driver.implicitly_wait(10)
        hw = HandyWrappers(driver)
        driver.get(baseUrl)

        elementResult1 = hw.isElementPresent("name", By.ID)
        print(str(elementResult1))

        elementResult2 = hw.elementPresenceCheck("//input[@id='name1']",
                                                 By.XPATH)
        print(str(elementResult2))
예제 #4
0
    def authModal(self, nombre, apellido, correo, area, rol, usuario,
                  contraseña, check):

        try:
            driver = self.checkInfo(
                modulo=
                "http://ec2-34-210-56-229.us-west-2.compute.amazonaws.com:3001/#/administracion/:modulo",
                datos=[
                    "Nombre", "Apellidos", "Tipo", "Email", "Área", "Usuario",
                    "Estatus"
                ])
            if driver == None:
                print(
                    "ocurrio un problema el driver no se retorno, proceso finalizado"
                )
                return
        except:
            print("Error inesperado en el driver:", sys.exc_info()[0])
            try:
                driver.quit()
            except:
                pass
            return

        su = SingUp()
        driver.find_element(By.XPATH,
                            "//button[text()='Agregar usuario']").click()
        time.sleep(1)
        try:
            modal = driver.find_element(
                By.XPATH,
                "//div[@class='modal-dialog']//div[@class='modal-content']")
        except:
            print("element modal not found")
            su.takescreenshot(driver,
                              namescren="FailModal",
                              directory="TestModuleAdmin/")
            driver.quit()
            return
        try:
            modal.find_element(By.XPATH, "//div[@class='modal-header']")
            modal.find_element(By.XPATH, "//div[@class='modal-body']")
            modal.find_element(By.XPATH, "//div[@class='modal-footer']")
        except:
            su.takescreenshot(driver,
                              namescren="FailModal",
                              directory="TestModuleAdmin/")
            print("El modal no contiene una estructura valida")
            driver.quit()
            return
        try:
            su.takescreenshot(driver,
                              namescren="Modal",
                              directory="TestModuleAdmin/")
            driver.find_element(By.XPATH,
                                "//input[@name='nombre']").send_keys(nombre)
            driver.find_element(
                By.XPATH, "//input[@name='apellido']").send_keys(apellido)
            driver.find_element(By.XPATH,
                                "//input[@name='correo']").send_keys(correo)
            driver.find_element(By.XPATH,
                                "//input[@name='area']").send_keys(area)
            sel = Select(driver.find_element(By.XPATH,
                                             "//select[@name='rol']"))  #select
            sel.select_by_value(rol)
            driver.find_element(By.XPATH,
                                "//input[@name='usuario']").send_keys(usuario)
            driver.find_element(
                By.XPATH, "//input[@type='password']").send_keys(contraseña)
            if check:
                checking = driver.find_element(By.XPATH,
                                               "//input[@name='activo']")
                driver.execute_script("arguments[0].click();", checking)
            su.takescreenshot(driver,
                              namescren="CamposLlenos",
                              directory="TestModuleAdmin/")
            driver.find_element(By.XPATH, "//input[@type='submit']").click()
        except:
            print("Error inesperado al registrar usuario :", sys.exc_info()[0])
            driver.quit()
            return

        hw = HandyWrappers(driver)
        if hw.elementPresenceCheck(
                locator="//*[text()='¡El usuario ya existe!']",
                byType="xpath"):
            res = self.VerificarusrBD(usuario)
            if res > 0:
                print("Usuario existente, denegado con exito")
            else:
                print("El sistema denego un usuario valido")
            su.takescreenshot(driver,
                              namescren="UsuarioExiste",
                              directory="TestModuleAdmin/")
            driver.find_element(
                By.XPATH, "//button[contains(text(),'Aceptar')]").click()
            self.closeSshandConection()
            if not self.encuentraUsrFront(driver, 6, usuario):
                print(
                    "El usuario denegado no se muestra en el front(esto no es correcto)"
                )
            driver.quit()
            return
        su.takescreenshot(driver,
                          namescren="UsuarioAgregado",
                          directory="TestModuleAdmin/")
        driver.find_element(By.XPATH,
                            "//button[contains(text(),'Aceptar')]").click()
        last = driver.find_element(By.XPATH,
                                   "//img[@src='./assets/img/last.png']")
        driver.execute_script("arguments[0].click();", last)
        res = self.VerificarusrBD(usuario)
        if res > 0:
            print("Usuario agregado correctamente a la BD")
        else:
            print("Ocurrio un problema al encontrar el usuario en la BD")
            driver.quit()
            return
        find_td = TD_VALIDAR.format(usuario)
        find = hw.getElement(locator=find_td, locatorType="XPATH")
        if not find:
            print("La pagina NO muestra correctamente el usuario")
            driver.quit()
            return
        down = driver.find_element(By.XPATH,
                                   "//img[contains(@src,'sort-down.png')]")
        driver.execute_script("arguments[0].click();", down)
        closesession = driver.find_element(
            By.XPATH, "// button[contains(text(), 'Cerrar sesión')]")
        driver.execute_script("arguments[0].click();", closesession)

        self.closeSshandConection()
        su.Login(driver=driver,
                 user=usuario,
                 passwd=contraseña,
                 element={
                     "locator": "XPATH",
                     "valueL": "//input[@type='text']"
                 })
예제 #5
0
    def Login(self, driver=None, user='', passwd="", element={}):
        self.takeS = 0
        self.observations = 'without observations'
        self.results = ''
        self.valueL = ''
        self.locator = ''
        fieldnames = [
            'user', 'password', 'results', 'Number of screenshots',
            'observations'
        ]
        driver.maximize_window()
        hw = HandyWrappers(driver)
        if len(element) < 0:
            self.locator = By.XPATH
            self.valueL = "//input[@type='text']"
        else:
            self.locator = hw.getByType(element['locator'])
            self.valueL = element['valueL']

        driver.implicitly_wait(3)
        self.takescreenshot(driver,
                            namescren='TestStartLogin',
                            directory="ScreenshotsPruebaLogin/")
        self.takeS += 1
        # ---------------------------------------------------------------------------------------------------------------
        A = driver.find_elements(self.locator, self.valueL)

        if len(A) > 1:
            for element in A:
                try:
                    element.send_keys(user)
                except:
                    pass
        elif len(A) == 1:
            A[0].send_keys(user)
        else:
            print("element " + self.valueL + " not found, process finished")
            self.results = "AuthenticationFail"
            self.observations = "element " + self.valueL + " not found, process finished"
            data = [{
                'user': user,
                'password': passwd,
                'results': self.results,
                'Number of screenshots': self.takeS,
                'observations': self.observations
            }]
            self.createCVS(fieldnames, data, name=self.results)
            return
        B = driver.find_elements(By.XPATH, "//input[@type='password']")
        if len(B) > 1:
            for element in B:
                try:
                    element.send_keys(passwd)
                except:
                    pass
        elif len(B) == 1:
            B[0].send_keys(passwd)
        else:
            print("element for put password not found, process finished")
            self.results = "AuthenticationFail"
            self.observations = "element for put password not found, process finished"
            data = [{
                'user': user,
                'password': passwd,
                'results': self.results,
                'Number of screenshots': self.takeS,
                'observations': self.observations
            }]
            self.createCVS(fieldnames, data, name=self.results)
            return
        self.takescreenshot(driver,
                            namescren="FillFields",
                            directory="ScreenshotsPruebaLogin/")
        self.takeS += 1
        C = driver.find_elements(By.XPATH, "//*[@type='submit']")
        if len(C) > 1:
            for element in C:
                try:
                    element.click()
                except:
                    pass

        elif len(C) == 1:
            C[0].click()
        else:
            print("button to start session up not found, process finished")
            self.results = "AuthenticationFail"
            self.observations = "Button to start session not found, process finished"
            data = [{
                'user': user,
                'password': passwd,
                'results': self.results,
                'Number of screenshots': self.takeS,
                'observations': self.observations
            }]
            self.createCVS(fieldnames, data, name=self.results)
            return

        time.sleep(3)
        print("validating authentication")
        V1 = hw.elementPresenceCheck(locator=self.valueL, byType=self.locator)
        V2 = hw.elementPresenceCheck(locator="//input[@type='password']",
                                     byType=By.XPATH)
        V3 = hw.elementPresenceCheck(locator="//*[@type='password']",
                                     byType=By.XPATH)
        if V1 and V2 and V3:
            self.takescreenshot(driver,
                                namescren="AuthenticationFail",
                                directory="ScreenshotsPruebaLogin/")
            self.takeS += 1
            self.results = "AuthenticationFail"

        else:
            self.takescreenshot(driver,
                                namescren="AuthenticationSuccessful",
                                directory="ScreenshotsPruebaLogin/")
            self.takeS += 1
            self.results = "AuthenticationSuccessful"
        data = [{
            'user': user,
            'password': passwd,
            'results': self.results,
            'Number of screenshots': self.takeS,
            'observations': self.observations
        }]
        self.createCVS(fieldnames, data, name=self.results)