Tratamento de exceções em Selenium Webdriver (tipos)
O que são exceções?
An exceção é um erro que acontece no momento da execução de um programa. No entanto, durante a execução de um programa, as linguagens de programação geram uma exceção que deve ser tratada para evitar que seu programa trave.
A exceção indica que, embora o evento possa ocorrer, esse tipo de evento acontece com pouca frequência. Quando o método não é capaz de tratar a exceção, ele é lançado para sua função chamadora.
Tipos de exceções em Selenium Driver da Web
1. ElementNotVisibleException: Este tipo de Selenium a exceção ocorre quando um elemento existente no DOM possui um recurso definido como oculto.
2. ElementNotSelectableException: Este Selenium exceção ocorre quando um elemento é apresentado no DOM, mas você pode selecionar. Portanto, não é possível interagir.
3. NoSuchElementException: Esta exceção ocorre se um elemento não puder ser encontrado.
4. NoSuchFrameException: Esta exceção ocorre se o quadro alvo a ser alternado não existir.
5. NoAlertPresentException: Esta exceção ocorre quando você muda para nenhum alerta apresentado.
6. NoSuchWindowException: Esta exceção ocorre se o destino da janela a ser alternada não existir.
7. StaleElementReferenceException: Este Selenium A exceção ocorre quando o elemento da web é desanexado do DOM atual.
8. SessionNotFoundException: O WebDriver está agindo após você sair do navegador.
9. Exceção de tempo limite: Lançado quando não há tempo suficiente para que um comando seja concluído. Por exemplo, o elemento pesquisado não foi encontrado no horário especificado.
10. WebDriverException: Esta Exceção ocorre quando o WebDriver está agindo logo após fechar o navegador.
11. ConnectionClosedException: Este tipo de Exceção ocorre quando há uma desconexão no driver.
12. ElementClickInterceptedException: O comando pode não ser concluído porque o elemento que recebe os eventos está ocultando o elemento que foi solicitado clicado.
13. ElementNotInteractableException: Este Selenium exceção é lançada quando qualquer elemento é apresentado no DOM. No entanto, é impossível interagir com tal elemento.
14. ErrorInResponseException: Isso acontece durante a interação com o Firefox extensão ou o servidor de driver remoto.
15. ErrorHandler.UnknownServerException: A exceção é usada como espaço reservado caso o servidor retorne um erro sem rastreamento de pilha.
16. ImeActivationFailedException: Essa expectativa ocorrerá quando a ativação do mecanismo IME falhar.
17. ImeNotAvailableException: Ocorre quando o suporte IME não está disponível.
18. InsecureCertificateException: A navegação fez com que o agente do usuário recebesse um aviso de certificado. Isso pode ser causado por um certificado TLS inválido ou expirado.
19. InvalidArgumentException: Ocorre quando um argumento não pertence ao tipo esperado.
20. InvalidCookieDomainException: Isso acontece quando você tenta adicionar um cookie em um domínio diferente em vez do URL atual.
21. Exceção de coordenadas inválidas: Este tipo de exceção corresponde a uma operação de interação que não é válida.
22. InvalidElementStateException: Ocorre quando o comando não pode ser concluído quando o elemento é inválido.
23. Exceção InvalidSessionId: Esta exceção ocorreu quando o ID de sessão fornecido não está incluído na lista de sessões ativas. Isso significa que a sessão não existe ou também está inativa.
24.SwitchTo inválidoTargetexceção: Isso ocorre quando o quadro ou janela alvo a ser alternado não existe.
25. Javascriptexceção: Esse problema ocorre durante a execução JavaScript fornecido pelo usuário.
26. JsonExceção: Ocorre quando você consegue obter a sessão quando a sessão não é criada.
27. NoSuchAttributeException: Este tipo de exceção ocorre quando o atributo de um elemento não foi encontrado.
28. Mova-seTargetOutOfBoundsException: Ocorre se o alvo fornecido para a metodologia move() do ActionChains não for válido. Por exemplo, fora do documento.
29. NoSuchContextException: A ContextAware faz testes em dispositivos móveis.
30. NoSuchCookieException: Esta exceção ocorre quando nenhum cookie correspondente ao nome de caminho fornecido foi encontrado para todos os cookies associados do documento atualmente navegando.
31. NotFoundException: Esta exceção é uma subclasse de WebDriverException. Isso ocorrerá quando um elemento no DOM não existir.
32. RemoteDriverServerException: Este Selenium a exceção é lançada quando o servidor não está respondendo devido ao problema de que os recursos descritos não são adequados.
33. Exceção de captura de tela: Não é possível capturar uma tela.
34. SessionNotCreatedException: Acontece quando uma nova sessão não pôde ser criada com sucesso.
35. UnableToSetCookieException: Isso ocorre se um driver não conseguir definir um cookie.
36. Exceção de TagName inesperada: Acontece se uma classe de suporte não obteve um elemento da web conforme esperado.
37. UnhandledAlertException: Essa expectativa ocorre quando há um alerta, mas o WebDriver não consegue realizar a operação de Alerta.
38. UnexpectedAlertPresentException: Ocorre quando há o aparecimento de um alerta inesperado.
39. UnknownMethodException: Esta exceção acontece quando o comando solicitado corresponde a uma URL conhecida, mas não corresponde a uma metodologia para uma URL específica.
40. UnreachableBrowserException: Esta exceção ocorre apenas quando o navegador não consegue ser aberto ou trava por algum motivo.
41. Exceção de Comando Não Suportada: Isso ocorre quando o WebDriver remoto não envia comandos válidos conforme o esperado.
Como lidar com exceções em Selenium
Aqui estão alguns padrões importantes com os quais você pode lidar com exceções em Selenium WebDriver:
Etapa 1) Try-catch
Este método pode capturar exceções, que usa uma combinação das palavras-chave try e catch. O comando Try indica o início do bloco e luta é colocado no final do bloco try, o que ajuda a resolver a exceção.
try { // Code } catch (Exception e) { // Code for Handling exception }
Etapa 2) Vários blocos catch
Existem vários tipos de exceções e você pode esperar mais de uma exceção de um único bloco de código. Múltiplas capturas ajudam você a lidar com cada tipo de exceção separadamente com um bloco de código separado. Ele pode ser usado para mais de dois blocos catch e não há limitação no número de blocos catch.
try { //Code } catch (ExceptionType1 e1) { //Code for Handling Exception 1 } catch (ExceptionType2 e2) { //Code for Handling Exception 2 }
Etapa 3) Jogue
Quando você deseja gerar uma exceção, a palavra-chave Throw é usada para lançar uma exceção para tratá-la em tempo de execução. Quando você está lançando uma exceção sem tratá-la, eles precisam usar a palavra-chave Throw.
public static void anyFunction() throws Exception{ try { // write your code here } Catch (Exception b) { // Do whatever you want to perform // Throw the Exception back to the system throw(b); } }
Etapa 4) Múltiplas Exceções
Você pode mencionar várias exceções na cláusula throws.
public static void anyFunction() throws ExceptionType1, ExceptionType2{ try { // write your code here } catch (ExceptionType1 e1) { // Code to handle exception 1 } catch (ExceptionType1 e2) { // Code to handle exception 2 }
Etapa 5) Finalmente
A palavra-chave Final é usada para criar um bloco de código no bloco try. É o código final que ajuda você a executar independentemente da ocorrência de uma exceção
try { //Code } catch (ExceptionType1 e1) { //Catch block } catch (ExceptionType2 e2) { //Catch block } catch (ExceptionType3 e3) { //Catch block } finally { //The finally block always executes. }
Métodos para exibir exceção
Você também pode usar os seguintes métodos para exibir informações de exceção:
- printStackTrace(): esta função imprime o rastreamento de pilha, o nome da exceção e outras descrições úteis.
- para sequenciar(): esta função retorna uma mensagem de texto descrevendo o nome e a descrição da exceção.
- getMessage (): Ajuda a exibir a descrição da Exceção.
Resumo
- Uma exceção é um erro que ocorre no momento da execução de um programa.
- Try-catch: Este método pode capturar exceções, que usa uma combinação das palavras-chave try e catch.
- Várias capturas ajudam você a lidar com cada tipo de exceção separadamente com um bloco de código separado.
- A palavra-chave Throw é usada para lançar uma exceção para lidar com ela em tempo de execução.
- printStackTrace(): Esta função imprime rastreamento de pilha, nome da exceção e outras descrições úteis
- toString(): Esta função retorna uma mensagem de texto descrevendo o nome e a descrição da exceção.
- getMessage(): Ajuda a exibir a descrição da exceção.