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()
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))
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']" })
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)