Repite una iteración defectuosa en el bloque “try” en el bucle “for element in” – python.
Escribo un script en python usando selenium.
Básicamente, abro un archivo de direcciones e intento localizar la capa de información asociada con cada dirección en el sitio de ArcGis.
for element in listaDeDirecciones:
direccion = element
try:
driver = webdriver.Chrome('D:\downloads\chromedriver_win32\chromedriver')
driver.get("https://www.arcgis.com/home/webmap/viewer.html?layers=c9fa1db72f74433b8eea48ed82a4e4f9")
time.sleep(6) // Todo tipo de elementos se cargan en el sitio web
barra_busqueda = driver.find_element_by_id("geocoder_input")
barra_busqueda.clear()
barra_busqueda.send_keys(direccion)
barra_busqueda.send_keys(Keys.RETURN) // Buscar dirección
time.sleep(3) // Todo tipo de elementos se cargan en el sitio web
mouse.move(422, 516, True, 0.1)
mouse.click('left') // hacer que aparezca el elemento
stat_11 = driver.find_element_by_xpath("/html/body/div[1]/div[1]/div[3]/div[5]/div[2]/div[1]/div[3]/div[3]/div[1]/div[2]/div/div/div[2]/div[3]/table/tr[2]/td[2]/span").text // El xpath específico del elemento web en el cual se encuentra la información que necesito
driver.close()
driver.quit()
print()
LineasParaArchivoTxt.append("NO, " + direccion.replace(',', '-') + ", " + str(stat_11))
except:
LineasParaArchivoTxt.append("Se ha producido una excepción")
Esa es la parte relevante.
Lo que quiero hacer, y no he encontrado una respuesta para ello, es repetir la iteración actual en caso de que el código arroje una excepción.
Es decir,
try:
# Bloque try aquí
except:
LineasParaArchivoTxt.append("Se ha producido una excepción")
RepetirIteracionActualConElMismoElemento() // Esto es solo para fines ilustrativos
¡Gracias!
davy.ai
Para repetir la iteración actual con el mismo elemento en caso de una excepción, simplemente puedes usar la palabra clave “continue” en el bloque “except”. Esta palabra clave omitirá la iteración actual y pasará a la siguiente, repitiendo de manera efectiva la misma iteración nuevamente. Aquí tienes un ejemplo de cómo puedes usarlo:
Al utilizar la palabra clave “continue”, el código omitirá el bloque “except” y pasará a la siguiente iteración con el mismo elemento, repitiendo la misma iteración hasta que el código pueda ejecutarse correctamente.