コード例 #1
0
ファイル: mouse_hover.py プロジェクト: Lunchesque/udemy
    def mouseHover(self):
        baseUrl = "https://letskodeit.teachable.com/p/practice/"
        driver = webdriver.Chrome()
        wrap = HandyWrappers(driver)
        driver.maximize_window()
        driver.implicitly_wait(5)
        driver.get(baseUrl)

        driver.execute_script("window.scrollBy(0, 600);")
        hoverElement = wrap.getElement("//button[@id='mousehover']")
        ActionChains(driver).move_to_element(hoverElement).perform()
        print("Moved mouse to MOUSE HOVER button")
        ActionChains(driver).pause(2).perform()

        topBtn = wrap.getElement("//a[@href='#top']")
        ActionChains(driver).move_to_element(topBtn).click().perform()
        print("Clicked TOP on MOUSE HOVER DROPDOWN")
        ActionChains(driver).pause(2).perform()

        driver.execute_script("window.scrollBy(0, 600);")
        ActionChains(driver).move_to_element(hoverElement).perform()
        print("Moved mouse to MOUSE HOVER button AGAIN")
        ActionChains(driver).pause(2).perform()

        reloadBtn = wrap.getElement("//a[text()='Reload']")
        ActionChains(driver).move_to_element(reloadBtn).click().perform()
        print("Clicked RELOAD on MOUSE HOVER DROPDOWN")
        ActionChains(driver).pause(3).perform()
コード例 #2
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()
コード例 #3
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)

        text_field = hw.getElement("name", "id")
        text_field.send_keys("yippeekiyay")
        time.sleep(3)

        driver.quit()
コード例 #4
0
    def test(self):
        baseUrl = "https://www.google.com"
        driver = webdriver.Chrome(r"")
        driver.maximize_window()
        driver.implicitly_wait(10)
        hw = HandyWrappers(driver)
        driver.get(baseUrl)

        elementResult1 = hw.isElementPresent(locator="", byType="")
        print(str(elementResult1))

        elementResult2 = hw.elementPresentCheck(locator="", byType="")
        print(str(elementResult2))
コード例 #5
0
    def test(self):
        baseUrl = "https://learn.letskodeit.com/p/practice"
        driver = webdriver.Firefox()
        driver.maximize_window()
        driver.implicitly_wait(10)
        hw = HandyWrappers(driver)
        driver.get(baseUrl)

        textField1 = hw.getElement("name")
        textField1.send_keys("Test")
        time.sleep(2)
        textField2 = hw.getElement("//input[@id='name']", locatorType="xpath")
        textField2.clear()
コード例 #6
0
    def test(self):
        baseUrl = "https://letskodeit.teachable.com/"
        driver = webdriver.Chrome()
        driver.maximize_window()
        driver.implicitly_wait(10)
        wrapper = HandyWrappers(driver)
        driver.get(baseUrl)

        loginLink = wrapper.getElement("//a[@href='/sign_in']")
        loginLink.click()

        emailField = wrapper.getElement("//input[@id='user_email']")
        emailField.send_keys("*****@*****.**")
コード例 #7
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))
コード例 #8
0
    def test(self):
        baseUrl = "https://www.google.com"
        driver = webdriver.Chrome(r"")
        driver.maximize_window()
        driver.get(baseUrl)
        hw = HandyWrappers(driver)


        textField1 = hw.getElement("") # It expect locator and locatorType
        textField1.send_keys("")
        time.sleep(3)

        textField2 = hw.getElement("//*[@id='name']", locatorType="xpath") # <-- XPATH
        textField2.clear()
コード例 #9
0
ファイル: switch_to_frame.py プロジェクト: Lunchesque/udemy
    def switchFrames(self):
        baseUrl = "https://letskodeit.teachable.com/p/practice"
        driver = webdriver.Chrome()
        wrap = HandyWrappers(driver)
        driver.maximize_window()
        driver.implicitly_wait(5)
        driver.get(baseUrl)
        driver.execute_script("window.scrollBy(0, 1000);")

        #Swith to frame usind ID
        #driver.switch_to.frame("courses-iframe")

        #Swith to frame using name
        #driver.switch_to.frame("iframe-name")

        #Switch to frame using numbers
        driver.switch_to.frame(0)

        #Serch cource
        ActionChains(driver).pause(2).perform()
        wrap.getElement("//input[@id='search-courses']").send_keys("python")
        wrap.getElement("//button[@id='search-course-button']").click()
        ActionChains(driver).pause(2).perform()

        #Switch back to the parent handle
        driver.switch_to.default_content()
        wrap.getElement("//input[@id='name']").send_keys("ON THE MAIN FRAME")
        ActionChains(driver).pause(2).perform()
コード例 #10
0
ファイル: screenshots.py プロジェクト: Lunchesque/udemy
    def test(self):
        baseUrl = "https://letskodeit.teachable.com"
        snap = TakeScreenshot()
        driver = webdriver.Chrome()
        driver.maximize_window()
        wrapper = HandyWrappers(driver)
        driver.get(baseUrl)
        driver.implicitly_wait(5)

        wrapper.getElement("//a[@href='/sign_in']").click()
        wrapper.getElement("//input[@id='user_email']").send_keys("*****@*****.**")
        wrapper.getElement("//input[@id='user_password']").send_keys("abc")
        wrapper.getElement("//input[@type='submit']").click()
        snap.takeScreenshot(driver)
        ActionChains(driver).pause(2).perform()
コード例 #11
0
class ExplicitWaitTypes():
    def __init__(self, driver):
        self.driver = driver
        self.hw = HandyWrappers(driver)

    def waitForElement(self,
                       locator,
                       locatorType="id",
                       timeout=10,
                       pool_Frequency=0.5):
        element = None
        try:
            byType = self.hw.getByType(locatorType)
            print("Waiting for maximum :: " + str(timeout) +
                  " :: seconds for element to be clickable")
            wait = WebDriverWait(self.driver,
                                 10,
                                 poll_frequency=1,
                                 ignored_exceptions=[
                                     NoSuchElementException,
                                     ElementNotVisibleException,
                                     ElementNotSelectableException
                                 ])
            element = wait.until(EC.element_to_be_clickable((byType, "")))

            print("Element appeared on the web page")
        except:
            print("Element not appeared on the web page")
            print_stack()
        return element
コード例 #12
0
    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)

        textField1 = hw.getElement("name")
        textField1.send_keys("Test")
        time.sleep(2)
        textField2 = hw.getElement("//input[@id='name']", locatorType="xpath")
        textField2.clear()
コード例 #13
0
    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))
コード例 #14
0
    def sliders(self):
        baseUrl = "http://jqueryui.com/slider/"
        driver = webdriver.Chrome()
        wrap = HandyWrappers(driver)
        actions = ActionChains(driver)
        driver.maximize_window()
        driver.implicitly_wait(5)
        driver.get(baseUrl)

        driver.switch_to.frame(0)
        sliderElement = wrap.getElement("//div[@id='slider']/span")
        actions.pause(2).perform()
        try:
            actions.drag_and_drop_by_offset(sliderElement, 150, 0)
            print("Slided!")
            actions.pause(2).perform()
        except:
            print("Sliding Failed")
コード例 #15
0
    def test(self):
        baseUrl = "https://letskodeit.teachable.com/p/practice"
        driver = webdriver.Chrome()
        driver.maximize_window()
        driver.implicitly_wait(5)
        hw = HandyWrappers(driver)

        driver.get(baseUrl)

        textField1 = hw.getElement("name", "id")
        textField1.send_keys("Text")
        ActionChains(driver).pause(2).perform()

        textField2 = hw.getElement("//input[@id='name']")
        textField2.clear()
        ActionChains(driver).pause(1).perform()
        textField2.send_keys("NEW TEXT")
        ActionChains(driver).pause(2).perform()
コード例 #16
0
    def test(self):
        baseUrl = "https://letskodeit.teachable.com/p/practice"
        driver = webdriver.Chrome()
        driver.maximize_window()
        wrapper = HandyWrappers(driver)
        driver.implicitly_wait(5)
        driver.get(baseUrl)

        hideShow = wrapper.getElement("//input[@id='displayed-text']")
        hideShow.send_keys("TEXT")
        ActionChains(driver).pause(2).perform()

        hideBtn = wrapper.getElement("//input[@id='hide-textbox']")
        hideBtn.click()
        ActionChains(driver).pause(2).perform()

        showBtn = wrapper.getElement("//input[@id='show-textbox']")
        showBtn.click()
        ActionChains(driver).pause(1).perform()
コード例 #17
0
    def waitForElement(self, locator, locatorType="id", timeout=10):
        element = None
        try:
            hw = HandyWrappers(self.driver)
            locatorType = hw.getByType(locatorType)
            print("Espera maxima de:: " + str(timeout) +
                  ":: segundos para que el elemento sea usable")
            element = WebDriverWait(
                self.driver,
                timeout,
                poll_frequency=1,
                ignored_exceptions=[
                    NoSuchElementException
                ]).until(lambda driver: self.driver.find_element(
                    locatorType, locator))
            print("Elemento aparecio en la pagina web")
        except:
            print("Elemento aparecio no en la pagina web")

        return element
コード例 #18
0
    def test(self):
        baseUrl = "http://letskodeit.teachable.com/pages/practice"
        driverlocation = "/usr/local/bin/chromedriver"
        os.environ["webdriver.crome.driver"] = driverlocation
        # Instantiate Crome Browser Command
        driver = webdriver.Chrome(driverlocation)
        driver.maximize_window()
        driver.implicitly_wait(10)
        driver.get(baseUrl)

        # Now create an object hw which is the instance of the
        # HandyWrappers class

        hw = HandyWrappers(driver)

        textField = hw.getElement("name")
        textField.send_keys("Test")
        time.sleep(2)
        textField2 = hw.getElement("//input[@id='name']",locatorType="xpath")
        textField2.clear()
コード例 #19
0
    def switchToAlert(self):
        baseUrl = "https://letskodeit.teachable.com/p/practice"
        driver = webdriver.Chrome()
        wrap = HandyWrappers(driver)
        driver.maximize_window()
        driver.implicitly_wait(5)
        driver.get(baseUrl)

        inputElement = wrap.getElement("//input[@id='name']")
        inputElement.send_keys("Sergey")
        print("Inputed text")

        alertBtn = wrap.getElement("//input[@id='alertbtn']")
        alertBtn.click()
        print("Clicked ALERT button")
        ActionChains(driver).pause(2).perform()

        alert1 = driver.switch_to.alert
        alert1.accept()
        print("Clicked OK(accepted)")
        ActionChains(driver).pause(2).perform()

        confirmBtn = wrap.getElement("//input[@id='confirmbtn']")
        confirmBtn.click()
        print("Clicked CONFIRM button")
        ActionChains(driver).pause(2).perform()

        alert2 = driver.switch_to.alert
        alert2.accept()
        print("Accepted alert")
        ActionChains(driver).pause(2).perform()

        confirmBtn.click()
        print("Clicked CONFIRM button again")
        ActionChains(driver).pause(2).perform()

        alert3 = driver.switch_to.alert
        alert3.dismiss()
        print("Dismissed alert")
        ActionChains(driver).pause(2).perform()
コード例 #20
0
    def test(self):
        baseUrl = "https://letskodeit.teachable.com/p/practice/"
        driver = webdriver.Chrome()
        driver.maximize_window()
        wrap = HandyWrappers(driver)
        driver.implicitly_wait(5)
        #driver.get(baseUrl)
        driver.execute_script(
            "window.location = 'https://letskodeit.teachable.com/p/practice';")

        #element = wrap.getElement("//input[@id='name']")
        element = driver.execute_script(
            "return document.getElementById('name');")
        element.send_keys("Test")

        ActionChains(driver).pause(3).perform()
コード例 #21
0
ファイル: switch_to_window.py プロジェクト: Lunchesque/udemy
    def switchWindow(self):
        baseUrl = "https://letskodeit.teachable.com/p/practice"
        driver = webdriver.Chrome()
        wrap = HandyWrappers(driver)
        driver.maximize_window()
        driver.implicitly_wait(5)
        driver.get(baseUrl)

        #Find parent window handle
        parentHandle = driver.current_window_handle
        print("Parent handle" + parentHandle)

        #find window btn and click it
        wrap.getElement("//button[@id='openwindow']").click()
        ActionChains(driver).pause(2).perform()

        #Find all handles
        handles = driver.window_handles

        #Switch to window and serch
        for handle in handles:
            print("Handle: " + handle)
            if handle not in parentHandle:
                driver.switch_to.window(handle)
                print("Switched to the window " + handle)
                searchBox = wrap.getElement("//input[@id='search-courses']")
                searchBox.send_keys("python")
                wrap.getElement("//button[@id='search-course-button']").click()
                ActionChains(driver).pause(2).perform()
                driver.close()
                break

        #Switch back to parent handle
        driver.switch_to.window(parentHandle)
        wrap.getElement("//input[@id='name']").send_keys("On Main Window")
        ActionChains(driver).pause(3).perform()
コード例 #22
0
    def test1(self):
        baseUrl = "http://www.expedia.com"
        driver = webdriver.Chrome()
        driver.maximize_window()
        wrapper = HandyWrappers(driver)
        driver.get(baseUrl)
        driver.implicitly_wait(5)

        #Click flights tab
        wrapper.getElement("//button[@id='tab-flight-tab-hp']").click()
        #Find departing field
        depField = wrapper.getElement("//input[@id='flight-departing-hp-flight']")
        #Click departing field
        depField.click()
        #Find the date to select
        dateToSelect = wrapper.getElement("//div[@class='col gcw-date-field']//div[2]//button[text()='26']")
        #Click the date
        dateToSelect.click()

        ActionChains(driver).pause(3).perform()
コード例 #23
0
    def checkInfo(self, modulo='', filtro='', dato1='', dato2=''):
        MONGO_DB = "logDB"
        fieldnames = ["modulo", "filtro", "parametros", "resultados"]
        su = SingUp()
        try:
            driver = su.startLoginLog(use=True)
        except:
            results = "Proceso finalizado. No se retorno el driver de inicio sesión"
            print(results)
            data = [{"modulo": modulo, "resultados": results}]
            su.createCVS(fieldnames=fieldnames,
                         data=data,
                         name="Fail" + modulo)
            return
        if driver == None:
            results = "Proceso finalizado. No se retorno el driver de inicio sesión"
            print(results)
            data = [{"modulo": modulo, "resultados": results}]
            su.createCVS(fieldnames=fieldnames,
                         data=data,
                         name="Fail" + modulo)
            return
        hw = HandyWrappers(driver)
        if modulo == "solicitudes":
            driver.find_element(By.XPATH,
                                "//*[@href='#/log-solicitudes']").click()
            columns = ['Cliente', 'Usuario', 'Acción', 'Documento', 'Fecha']
            details = [
                'Responsable:', 'Servicio Consumido:', 'Id del documento:'
            ]
            coll = "solicituds"
        elif modulo == "usuarios":
            driver.find_element(By.XPATH,
                                "//*[@href='#/reporte-acciones']").click()
            columns = [
                'Sistema', 'Responsable', 'Acción', 'Usuario afectado', 'Fecha'
            ]
            details = [
                'Responsable:', 'Servicio Consumido:', 'Id del documento:'
            ]
            coll = "usuarioslogs"
        elif modulo == "sociedades":
            driver.find_element(By.XPATH,
                                "//*[@href='#/log-sociedades']").click()
            columns = ['Sistema', 'Responsable', 'Acción', 'Sociedad', 'Fecha']
            details = [
                'Responsable:', 'Servicio Consumido:', 'Id del documento:'
            ]
            coll = "sociedadschemas"
        else:
            print("modulo invalido")
            return
        # button = driver.find_element(By.XPATH, "//button[@class='btn btn-link collapsed']")
        # driver.execute_script("arguments[0].click();", button)
        for colum in columns:
            value = hw.isElementPresent(byType=By.XPATH,
                                        locator="//table//thead//*[text()='" +
                                        colum + "']")
            if not value:
                print("falta dato " + colum + " en la tabla")
        print("datos de la tabla analizados")
        print("Analizando los detalles")
        btnDetails = driver.find_element(By.XPATH,
                                         "//table//tr//td[6]//span[1]")
        driver.execute_script("arguments[0].click();", btnDetails)
        for d in details:
            value = hw.isElementPresent(locator="//table//tr//td//p[text()='" +
                                        d + "']",
                                        byType=By.XPATH)
            if value:
                text = driver.find_element(
                    By.XPATH,
                    "//table//tr//td//p[text()='" + d + "']//code").text
                if text == "":
                    print("no hay informacion en:" + d)
        driver.execute_script("arguments[0].click();", btnDetails)

        #------------------------------------- FILTROS POR BUSQUEDA ----------------------------------------------------
        if filtro == 'busqueda':
            indice = 0
            try:
                indice = columns.index(dato1) + 1
            except:
                results = "campo de busqueda " + dato1 + " no valido"
                print(results)
                name = "TestInfoFail"
                data = [{
                    "modulo": modulo,
                    "filtro": filtro,
                    "parametros": dato1 + " a " + dato2,
                    "resultados": results
                }]
                su.createCVS(fieldnames=fieldnames, data=data, name=name)
                return

            print("buscando por " + dato1 + ": " + dato2)
            driver.find_element(
                By.XPATH,
                "//input[contains (@type,'text')and contains (@placeholder,'Búsqueda')]"
            ).send_keys(dato2)
            driver.find_element(By.XPATH, "//button[text()='Buscar']").click()

            time.sleep(2)
            filas = driver.find_elements(
                By.XPATH, "//tbody/tr/td[" + str(indice) + "]/div")

            if len(filas) == 0:
                print("sin resultados")
            else:
                while True:
                    next = driver.find_element(
                        By.XPATH, "//div[@id='pagination']//a[3]")
                    filas = driver.find_elements(
                        By.XPATH, "//tbody/tr/td[" + str(indice) + "]/div")
                    for campo in filas:
                        texto = campo.text
                        notfind = -1
                        if texto.find(dato2) == notfind:
                            print("se encontro un dato no valido")

                    paginas = driver.find_elements(
                        By.XPATH, "//div[@id='pagination']//span")
                    print("pagina " + paginas[0].text + " de " +
                          paginas[1].text)
                    if paginas[0].text == paginas[1].text:
                        break
                    else:
                        driver.execute_script("arguments[0].click();", next)
                        time.sleep(1)

                print("todos los datos coinciden con la busqueda")
            print("comparando contra la base de datos")
            dataInFront = self.infoFront(driver)
            self.conectionDB()
            db = self.connection[MONGO_DB]
            collection = db[coll]
            campo = self.buscaCampoDB(dato1)
            print("la busqueda se reliza por :" + campo + " y se busca " +
                  dato2)
            sizeofData = collection.find({campo: {"$regex": dato2}}).count()
            if dataInFront == sizeofData:
                results = ("Al filtrar son " + str(dataInFront) +
                           " datos en el modulo que tambien estan en la BD")
                print(results)
                su.takescreenshot(driver=driver,
                                  namescren="TestInfoSuccessful",
                                  directory="TestModules/")
                name = "TestInfoSuccessful"
            else:
                results = ("Los " + str(sizeofData) +
                           " datos de ls BD no coinciden con los " +
                           str(dataInFront) +
                           " datos en la pagina, al realizar el filtrado")
                print(results)
                su.takescreenshot(driver=driver,
                                  namescren="TestInfoFail",
                                  directory="TestModules/")
                name = "TestInfoFail"
            data = [{
                "modulo": modulo,
                "filtro": filtro,
                "parametros": dato1 + ":" + dato2,
                "resultados": results
            }]
            su.createCVS(fieldnames=fieldnames, data=data, name=name)
            time.sleep(1)
            self.closeSshandConection()
            driver.quit()
            time.sleep(2)

        #------------------------------------- FILTROS POR FECHA ----------------------------------------------------
        elif filtro == 'fecha':
            dia = dato1[:dato1.index("/")]
            sliceD = dato1[dato1.index("/") + 1:]
            mes = sliceD[:sliceD.index("/")]
            año = sliceD[sliceD.index("/") + 1:]

            dia2 = dato2[:dato2.index("/")]
            sliceD = dato2[dato2.index("/") + 1:]
            mes2 = sliceD[:sliceD.index("/")]
            año2 = sliceD[sliceD.index("/") + 1:]

            if int(dia) > 0 and int(dia) < 32:
                if int(mes) > 0 and int(mes) < 13:
                    if int(año) > 2008 and int(año) < 2030:
                        pass
                    else:
                        print("fecha invalida de inicio, año fuera de rango")
                else:
                    print("fecha de inicio invalida, mes incorrecto")
            else:
                print("fecha de inicio invalida, dia incorrecto")
            if int(dia2) > 0 and int(dia2) < 32:
                if int(mes2) > 0 and int(mes2) < 13:
                    if int(año2) > 2008 and int(año2) < 2030:
                        pass
                    else:
                        print("fecha final invalida, año fuera de rango")
                else:
                    print("fecha final invalida, mes incorrecto")
            else:
                print("fecha final invalida, dia incorrecto")
            #INSERTA LA PRIMER FECHA
            date = driver.find_element(
                By.XPATH,
                "//button[@class='btn btn-outline-secondary btn-sm'][1]")
            driver.execute_script("arguments[0].click();", date)
            time.sleep(1)
            element = driver.find_elements(By.XPATH,
                                           "//select[@class='custom-select']")

            sel = Select(element[1])
            sel.select_by_value(año)

            sel2 = Select(element[0])
            mes = str(int(mes))
            sel2.select_by_value(mes)
            dias = driver.find_elements(By.XPATH, "//div[@class='btn-light']")
            if (len(dias) < dia):
                print("al perecer el mes " + mes +
                      " solo tiene 30 o menos dias")
                return
            dias[int(dia) - 1].click()

            #INSERTA LA SEGUNDA FECHA
            date = driver.find_element(
                By.XPATH,
                "//button[@class='btn btn-outline-secondary btn-sm'][2]")
            driver.execute_script("arguments[0].click();", date)
            time.sleep(1)
            element = driver.find_elements(By.XPATH,
                                           "//select[@class='custom-select']")

            sel = Select(element[1])
            sel.select_by_value(año2)

            sel2 = Select(element[0])
            mes2 = str(int(mes2))
            sel2.select_by_value(mes2)

            dias = driver.find_elements(By.XPATH, "//div[@class='btn-light']")
            if (len(dias) < dia2):
                print("al perecer el mes " + mes +
                      " solo tiene 30 o menos dias")
                return
            dias[int(dia2) - 1].click()

            driver.find_element(By.XPATH, "//button[text()='Buscar']").click()
            time.sleep(2)
            #-------------------
            dataInFront = self.infoFront(driver)
            self.conectionDB()
            db = self.connection[MONGO_DB]
            collection = db[coll]
            date1 = [int(dia), int(mes), int(año)]
            date2 = [int(dia2), int(mes2), int(año2)]
            sizeofData = self.DateinDataB(collection=collection,
                                          date1Int=date1,
                                          date2Int=date2)

            if dataInFront == sizeofData:
                results = ("Al filtrar son " + str(dataInFront) +
                           " datos en el modulo que tambien estan en la BD")
                print(results)
                su.takescreenshot(driver=driver,
                                  namescren="TestInfoSuccessful",
                                  directory="TestModules/")
                name = "TestInfoSuccessful"
            else:
                results = ("Los " + str(sizeofData) +
                           " datos de ls BD no coinciden con los " +
                           str(dataInFront) +
                           " datos en la pagina al realizar el filtrado")
                print(results)
                su.takescreenshot(driver=driver,
                                  namescren="TestInfoFail",
                                  directory="TestModules/")
                name = "TestInfoFail"
            data = [{
                "modulo": modulo,
                "filtro": filtro,
                "parametros": dato1 + " a " + dato2,
                "resultados": results
            }]
            su.createCVS(fieldnames=fieldnames, data=data, name=name)
            time.sleep(1)
            self.closeSshandConection()
            driver.quit()
            time.sleep(2)

        time.sleep(1)
        driver.quit()
コード例 #24
0
 def __init__(self, driver):
     self.driver = driver
     self.hw = HandyWrappers(driver)
コード例 #25
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)
コード例 #26
0
    def test(self):
        baseUrl = "https://www.expedia.com"
        driver = webdriver.Chrome()
        wrapper = HandyWrappers(driver)
        driver.implicitly_wait(0.5)
        driver.maximize_window()
        driver.get(baseUrl)

        wrapper.getElement("//button[@id='tab-flight-tab-hp']").click()
        wrapper.getElement("//input[@id='flight-origin-hp-flight']").send_keys(
            "SFO")
        wrapper.getElement(
            "//input[@id='flight-destination-hp-flight']").send_keys("NYC")
        wrapper.getElement("//input[@id='flight-departing-hp-flight']"
                           ).send_keys("03/01/2018")
        returnDate = wrapper.getElement(
            "//input[@id='flight-returning-hp-flight']")
        returnDate.clear()
        returnDate.send_keys("03/03/2018")
        searchBtn = wrapper.getElement(
            "//form[@id='gcw-flights-form-hp-flight']//div[@class='cols-nested']//label[@class='col search-btn-col']//button[@type='submit']"
        )
        ActionChains(driver).move_to_element(searchBtn).click(
            searchBtn).perform()
        wrapper.getElement("//input[@id='stopFilter_stops-0']").click()

        ActionChains(driver).pause(3).perform()
コード例 #27
0
ファイル: InicioSesionLog.py プロジェクト: JCSC97/Selenium
    def Login(self, driver, user='', passwd="", typeU=""):
        self.takeS = 0
        self.observations = ''
        self.results = ''
        fielnames = [
            'usuario', 'contraseña', 'tipoUsuario', 'resultados',
            'No. de capturas', 'observaciones'
        ]
        typeU = typeU.lower()

        hw = HandyWrappers(driver)
        driver.implicitly_wait(3)
        self.takescreenshot(driver,
                            namescren='IniciaPruebaLogin',
                            directory="ScreenshotsPruebaLogin/")
        self.takeS += 1
        locator = By.XPATH
        driver.find_element(locator, "//input[@formcontrolname='" + InLogin +
                            "']").send_keys(user)
        driver.find_element(By.XPATH, "//input[@type='" + InPass +
                            "']").send_keys(passwd)
        self.takescreenshot(driver,
                            namescren='LlenadoDeDatos',
                            directory="ScreenshotsPruebaLogin/")
        self.takeS += 1
        driver.find_element(By.XPATH,
                            "//input[@value='" + ElmentAccess + "']").click()
        buttonAceptar = hw.isElementPresent(
            locator="//button[text()='Aceptar']", byType=By.XPATH)
        self.observations = hw.returnResults()
        if buttonAceptar:
            time.sleep(1)
            #-----------------------------screenshot-------------------------------------------------
            driver.find_element(By.XPATH, "//button[text()='Aceptar']").click()
            time.sleep(2)
            print(
                "Ocurrio un problema de autenticacion(datos incorrectos o informacion faltante)"
            )

            self.takescreenshot(driver,
                                namescren='FalloAutenticacion',
                                directory="ScreenshotsPruebaLogin/")
            self.takeS += 1
            self.results = 'Ocurrio un problema de autenticacion(datos incorrectos o informacion faltante)'
            data = [{
                'usuario': user,
                'contraseña': passwd,
                'tipoUsuario': typeU,
                'resultados': self.results,
                'No. de capturas': self.takeS,
                'observaciones': self.observations
            }]
            csv = CSVclass()
            csv.writeCSV(fieldnames=fielnames,
                         data=data,
                         name='resultadosTC1_INICIO_SESION')

            return False

        elements = driver.find_elements(By.XPATH, "//li//a")
        if typeU == 'simple':
            if len(elements) == 3:
                self.results = 'Autenticacion de usuario simple exitosa'
                print(self.results)

                self.takescreenshot(
                    driver,
                    namescren='AtenticacionExitosaParaUsuario' + typeU,
                    directory="ScreenshotsPruebaLogin/")
                self.takeS += 1
            else:
                self.takescreenshot(
                    driver,
                    namescren='AtenticacionFallidaParaUsuario' + typeU,
                    directory="ScreenshotsPruebaLogin/")
                self.takeS += 1
                self.results = ("Autenticacion de usuario simple fallida")
                print(self.results)
        elif typeU == 'administrador':
            if len(elements) == 4:
                self.results = (
                    "Autenticacion de usuario administrador exitosa")
                print(self.results)
                self.takescreenshot(
                    driver,
                    namescren='AtenticacionExitosaParaUsuario' + typeU,
                    directory="ScreenshotsPruebaLogin/")
                self.takeS += 1
            else:
                self.takescreenshot(
                    driver,
                    namescren='AtenticacionFallidaParaUsuario' + typeU,
                    directory="ScreenshotsPruebaLogin/")
                self.takeS += 1
                self.results = (
                    "Autenticacion de usuario administrador fallida")
                print(self.results)
        data = [{
            'usuario': user,
            'contraseña': passwd,
            'tipoUsuario': typeU,
            'resultados': self.results,
            'No. de capturas': self.takeS,
            'observaciones': self.observations
        }]
        csv = CSVclass()
        csv.writeCSV(fieldnames=fielnames,
                     data=data,
                     name='resultadosTC1_INICIO_SESION')
        time.sleep(2)
        return True
コード例 #28
0
ファイル: ADMIN_MODULE_TEST.py プロジェクト: JCSC97/Selenium
    def checkInfo(self, modulo='', datos=[]):
        MONGO_DB = "logDB"
        coll = 'usuarios'
        fieldnames = ["modulo", "resultados"]

        su = SingUp()
        try:
            driver = su.startLogin(use=True)
        except:
            print("process finished, no driver return")
            return
        if driver == None:
            print("process finished, no driver return")
            return None
        print("rediriegiendo a :" + modulo)
        hw = HandyWrappers(driver)
        driver.get(modulo)
        time.sleep(1)

        print("modulo: " + modulo)
        tableExists = hw.isElementPresent(byType="xpath", locator="//table")

        if not tableExists:
            print("no se encontro ninguna estructura de datos valida")
            return None
        encabezadoT = driver.find_element(By.XPATH, "//thead")

        for dato in datos:
            try:
                encabezadoT.find_element(By.XPATH,
                                         "//*[text()='" + dato + "']")

            except:
                results = "el dato :" + dato + " no se encontró"
                print(results)
                data = [{"modulo": modulo, "resultados": results}]
                su.createCVS(fieldnames=fieldnames, data=data, name="Fallo")
                return None
        self.conectionDB()
        db = self.connection[MONGO_DB]
        collection = db[coll]
        sizeofData = collection.find().count()
        paginas = driver.find_element(By.XPATH,
                                      "//div[@id='pagination']//span[2]").text
        numPag = int(paginas)
        print(numPag)

        ultima = driver.find_element(By.XPATH,
                                     "//a//img[@src='./assets/img/last.png']")
        driver.execute_script("arguments[0].click();", ultima)
        time.sleep(1)
        filas = driver.find_elements(By.XPATH, "//table//tbody//tr")
        sizeF = len(filas)

        dataInFront = (10 * (numPag - 1)) + sizeF

        if dataInFront == sizeofData:
            results = ("Son " + str(dataInFront) +
                       " datos en el modulo que tambien estan en la BD")
            print(results)
            su.takescreenshot(driver=driver,
                              namescren="TestInfoSuccessful",
                              directory="TestModuleAdmin/")
            name = "TestInfoSuccessful"
        else:
            results = ("Los " + str(sizeofData) +
                       " datos de ls BD no coinciden con los " +
                       str(dataInFront) + " datos en la pagina")
            print(results)
            su.takescreenshot(driver=driver,
                              namescren="TestInfoFail",
                              directory="TestModuleAdmin/")
            name = "TestInfoFail"
        time.sleep(1)

        data = [{"modulo": modulo, "resultados": results}]
        su.createCVS(fieldnames=fieldnames, data=data, name=name)
        print("EVUALACION!!!!!!!!!!!!!!!!!!!!!!!!!!!!")
        first = driver.find_element(By.XPATH,
                                    "//img[@src='./assets/img/first.png']")
        driver.execute_script("arguments[0].click();", first)
        time.sleep(1)

        self.closeSshandConection()
        return driver
コード例 #29
0
ファイル: ADMIN_MODULE_TEST.py プロジェクト: JCSC97/Selenium
    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']"
                 })
コード例 #30
0
    def test(self):
        baseUrl = "https://letskodeit.teachable.com"
        driver = webdriver.Chrome()
        driver.maximize_window()
        wrapper = HandyWrappers(driver)
        driver.implicitly_wait(5)
        driver.get(baseUrl)

        wrapper.getElement("//a[@href='/sign_in']").click()
        email = wrapper.getElement("//input[@id='user_email']")
        email.send_keys("*****@*****.**")
        password = wrapper.getElement("//input[@id='user_password']")
        password.send_keys("abcabc")
        wrapper.getElement("//input[@type='submit']").click()

        searchBox = wrapper.getElement("//input[@id='search-courses']")
        searchBox.send_keys("JavaScript")
        searchBtn = wrapper.getElement("//button[@id='search-course-button']")
        searchBtn.click()

        _course = "//div[contains(@class, 'course-listing-title') and contains(text(), '{0}')]"
        _courseLocator = _course.format("JavaScript for beginners")

        ActionChains(driver).pause(1).perform()

        courseElement = wrapper.getElement(_courseLocator)
        courseElement.click()

        ActionChains(driver).pause(3).perform()