Olá!
Estou tendo dificuldade de manipular popups de “warning” e “accept” em um sistema web based, ouse seja, num sistema que acesso via navegador.
Ao pesquisar um registro ele pode (ou não) retornar um alerta de “registro não encontrado” em um popup. Mas este popup não é inspecionável. Aparentemente ele é do windows.
Usei este código:
try:
dialog_warning = bot.get_js_dialog(timeout=5) # Ajustar o tempo de espera conforme necessário
if dialog_warning:
dialog_warning_response = dialog_warning.text
print(dialog_warning_response)
dialog_warning.accept()
except Exception as e:
print(f"Erro ao lidar com pop-up: {e}")
pass
Algumas vezes ele trouxe o texto do popup e outras vezes dá erro de “elemento não possui a opção text”, ou seja, aparentemente ele não achou o popup.
Alguém já teve esse problema?
Saberiam me dizer como resolver?
Desde já agradeço!
Olá @ptfolchito,
Por acaso você já tentou utilizar o método handle_js_dialog
do framework web? Basicamente ele já possui um tratamento interno para buscar o dialog e aceitar ou não baseado no que é passado por parâmetro. Aqui na documentação tem um exemplo: Alertas - Documentação BotCity
Outro detalhe é que o método get_js_dialog
por padrão não possui esse parâmetro do timeout, um outro teste que pode tentar fazer é colocar um delay explícito antes de tentar buscar pelo alert, pode ser que o tempo entre o alerta aparecer na página e o método ser executado não esteja sendo suficiente. Nesse caso, poderia testar algo assim:
try:
bot.wait(5000) # Espera explicitamente por 5 segundos
dialog_warning = bot.get_js_dialog()
if dialog_warning:
dialog_warning_response = dialog_warning.text
print(dialog_warning_response)
dialog_warning.accept()
except Exception as e:
print(f"Erro ao lidar com pop-up: {e}")
pass
Obrigada João!
Com suas dicas consegui resolver.
Abs
1 Like