Parcourir la source

Correccion para que no se quede pegado el proceso buscando un elemento

Francisco huezo il y a 6 ans
Parent
commit
6a7a485b67
3 fichiers modifiés avec 19 ajouts et 5 suppressions
  1. 8 4
      sim/memsim.py
  2. 9 1
      sim/utils/common.py
  3. 2 0
      sim/utils/exceptions.py

+ 8 - 4
sim/memsim.py

@@ -52,16 +52,19 @@ def download_files():
 
         driver.get(url)
         rootLogger.info("Iniciando proceso de certificación y login...")
-        val.validate_element_by_id(driver,"uploadCerfile0")
+        if not val.validate_element_by_id(driver,"uploadCerfile0"):
+            raise ElementoNoListo("No se cargo el elemento uploadCerfile0")
         driver.find_element_by_id("uploadCerfile0").send_keys(
             os.path.join(config.CERT_PATH,"carlosmauriciojuarez-mexicanenergytrading.cer"))
 
         
-        val.validate_element_by_id(driver,"uploadKeyfile0")
+        if not val.validate_element_by_id(driver,"uploadKeyfile0"):
+            raise ElementoNoListo("No se cargo el elemento uploadKeyfile0")
         driver.find_element_by_id("uploadKeyfile0").send_keys(
             os.path.join(config.CERT_PATH,"carlosmauriciojuarez-mexicanenergytrading_user.key"))
 
-        val.validate_element_by_id(driver,"txtPrivateKey")
+        if not val.validate_element_by_id(driver,"txtPrivateKey"):
+            raise ElementoNoListo("No se cargo el elemento txtPrivateKey")
         driver.find_element_by_id("txtPrivateKey").send_keys(config.PRIVATE_KEY)
         time.sleep(1)
         driver.find_element_by_id("btnEnviar").click()
@@ -88,7 +91,8 @@ def download_files():
         driver.find_element_by_css_selector("li.rtLI:nth-child(2) > ul:nth-child(2) > li:nth-child(1) > div:nth-child(1) > span:nth-child(2)").click()
 
         val.validate_element_not_present(driver, "RadAjaxLoadingPanel1RadAjaxPanel1")
-        val.validate_element_by_id(driver, "Div7")
+        if not val.validate_element_by_id(driver, "Div7"):
+            raise ElementoNoListo("No se cargo el elemento Div7")
 
         ecd_div = driver.find_element_by_id("Div7")
         trs = ecd_div.find_elements_by_tag_name("tr")

+ 9 - 1
sim/utils/common.py

@@ -12,18 +12,26 @@ class Validation:
 
     def validate_element_by_id(self, browser, id):
         self.logger.debug( "Buscando elemento: " + id)
+        cont = 0 #Controla la cantidad de intentos para descargar el archivo
+        result=False
         ready = False
         while (not ready):
             try:
                 browser.find_element_by_id(id)
                 self.logger.debug("El elmento con id {0} esta listo".format(id))
                 ready = True
+                result = True
             except:
                 self.logger.debug("El elmento con id {0} no esta listo".format(id))
                 ready = False
+            if cont == 120:
+                self.logger.debug("Se agoto el tiempo de espera para validar la descargar.")
+                ready = True
+                result=False
+            cont = cont+1
             time.sleep(0.25)
 
-        return ready
+        return result
 
     def validate_element_by_tag_name(self, browser, tag):
         self.logger.debug( "Buscando elemento: " + tag)

+ 2 - 0
sim/utils/exceptions.py

@@ -1,2 +1,4 @@
 class CertificadosIncorrectos(Exception):
+    pass
+class ElementoNoListo(Exception):
     pass