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.