Lab 2.7: Reportando erro ao Orquestrador
A gestão de erros é parte essencial do desenvolvimento de qualquer aplicativo, e com automações isso não é diferente.
Através do código do robô podemos tratar e registrar os erros/exceções que acontecem durante a execução de nosso processo.
Reportando erros ao Orquestrador BotCity Maestro
Vamos alterar nosso código para tratar qualquer erro durante o processo e enviar as informações ao Orquestrador BotCity Maestro.
Para isso, vamos alterar o código adicionando o bloco try/except/finally da seguinte forma:
...
def main():
try:
maestro = BotMaestroSDK.from_sys_args()
execution = maestro.get_execution()
bot = WebBot()
# Configurando para rodar em modo headless
bot.headless = False
# Setando Firefox
bot.browser = Browser.FIREFOX
# Setando caminho do WebDriver
bot.driver_path = r"resources\geckodriver.exe"
maestro.alert(
task_id=execution.task_id,
title="BotCotação - Inicio",
message="Estamos iniciando o processo",
alert_type=AlertType.INFO
)
# Recuperando o parametro "moeda" e assumindo valor padrão como
# Cotação Dólar
moeda = execution.parameters.get("moeda", "Cotação Dólar")
# Abre a página inicial do Google
bot.browse("https://www.google.com")
# Forcando uma exception para registrarmos um erro
x = 0/0
if not bot.find( "lupa", matching=0.97, waiting_time=10000):
not_found("lupa")
bot.click()
bot.paste(moeda)
bot.enter()
valor_cotacao = bot.find_element(".SwHCTb", By.CSS_SELECTOR)
print(f"Dólar => R$ {valor_cotacao.text}")
status = AutomationTaskFinishStatus.SUCCESS
message = "Tarefa BotCotação finalizada com sucesso"
except Exception as ex:
# Salvando captura de tela do erro
bot.save_screenshot("erro.png")
# Dicionario de tags adicionais
tags = {"moeda": moeda}
# Registrando o erro
maestro.error(
task_id=execution.task_id,
exception=ex,
screenshot="erro.png",
tags=tags
)
status = AutomationTaskFinishStatus.FAILED
message = "Tarefa BotCotação finalizada com falha"
finally:
bot.wait(2000)
bot.stop_browser()
# Finalizando a tarefa
maestro.finish_task(
task_id=execution.task_id,
status=status,
message=message
)
...
No bloco de erros, podemos customizar as informações que serão enviadas, como captura de tela, anexos e tags. Saiba mais clicando aqui.
Testando o envio de erros
Para testarmos o envio de erros para o Orquestrador BotCity Maestro siga as instruções abaixo:
- Crie uma tarefa no Orquestrador BotCity Maestro.
- Aguarde até o final do processo onde está sendo forçada uma divisão por 0.
Isso fará com que uma exceção seja lançada, gerando um erro similar a este:



