O que é uma exceção?
Uma exceção é um erro que ocorre no momento da execução de um programa. No entanto, ao executar um programa, as linguagens de programação geram uma exceção que deve ser tratada para evitar que o programa trave.
A exceção indica que, embora o evento possa ocorrer, esse tipo de evento ocorre com pouca frequência. Quando o método não é capaz de manipular a Exceção, ela é lançada para sua função de chamador. Eventualmente, quando uma exceção é lançada fora da função principal, o programa é encerrado abruptamente.
Neste tutorial, você aprenderá:
- O que é uma exceção?
- Exceções no driver da Web Selenium
- Tratamento de exceções de selênio
- Métodos para exibir exceção
Exceções comuns no driver da Web Selenium
Nome de exceção | Descrição |
ElementNotVisibleException | Este tipo de exceção Selenium ocorre quando um elemento existente no DOM tem um recurso definido como oculto. |
ElementNotSelectableException | Essa exceção do Selenium ocorre quando um elemento é apresentado no DOM, mas você pode selecionar. Portanto, não é possível interagir. |
NoSuchElementException | Esta exceção ocorre se um elemento não for encontrado. |
NoSuchFrameException | Esta exceção ocorre se o alvo do quadro a ser alternado não existe. |
NoAlertPresentException | Esta exceção ocorre quando você muda para nenhum alerta apresentado. |
NoSuchWindowException | Esta exceção ocorre se o alvo da janela a ser alternado não existir. |
StaleElementReferenceException | Essa exceção do Selenium ocorre quando o elemento da web é desanexado do DOM atual. |
SessionNotFoundException | O WebDriver está agindo depois que você sai do navegador. |
TimeoutException | 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 tempo especificado. |
WebDriverException | Esta exceção ocorre quando o WebDriver está agindo logo após você fechar o navegador. |
ConnectionClosedException | Este tipo de Exceção ocorre quando há uma desconexão do driver. |
ElementClickInterceptedException | O comando não pode ser concluído porque o elemento que recebe os eventos está ocultando o elemento que foi solicitado clicado. |
ElementNotInteractableException | Essa exceção Selenium é lançada quando qualquer elemento é apresentado no DOM. No entanto, é impossível interagir com tal elemento. |
ErrorInResponseException | Isso acontece durante a interação com a extensão do Firefox ou o servidor de driver remoto. |
ErrorHandler.UnknownServerException | A exceção é usada como um espaço reservado no caso de o servidor retornar um erro sem um rastreamento de pilha. |
ImeActivationFailedException | Essa expectativa ocorrerá quando a ativação do mecanismo IME falhar. |
ImeNotAvailableException | Ocorre quando o suporte IME não está disponível. |
InsecureCertificateException | A navegação fez o agente do usuário acertar um aviso de certificado. Isso pode ser causado por um certificado TLS inválido ou expirado. |
InvalidArgumentException | Ocorre quando um argumento não pertence ao tipo esperado. |
InvalidCookieDomainException | Isso acontece quando você tenta adicionar um cookie em um domínio diferente em vez do URL atual. |
InvalidCoordinatesException | Este tipo de exceção corresponde a uma operação de interação que não é válida. |
InvalidElementStateExceptio | Ocorre quando o comando não pode ser concluído quando o elemento é inválido. |
InvalidSessionIdException | Essa exceção ocorreu quando o determinado ID de sessão não foi incluído na lista de sessões ativas. Isso significa que a sessão não existe ou também está inativa. |
InvalidSwitchToTargetException | Isso ocorre quando o alvo do quadro ou janela a ser alternado não existe. |
JavascriptException | Esse problema ocorre durante a execução do JavaScript fornecido pelo usuário. |
JsonException | Ocorre quando você tem recursos para obter a sessão, mas ela não foi criada. |
NoSuchAttributeException | Este tipo de exceção ocorre quando o atributo de um elemento não foi encontrado. |
MoveTargetOutOfBoundsException | Ocorre se o destino fornecido para a metodologia ActionChains move () não for válido. Por exemplo, fora do documento. |
NoSuchContextException | ContextAware faz testes de dispositivos móveis. |
NoSuchCookieException | Esta exceção ocorre quando nenhum cookie correspondente ao caminho de acesso fornecido for encontrado para todos os cookies associados ao documento em navegação no momento. |
NotFoundException | Esta exceção é uma subclasse de WebDriverException. Isso ocorrerá quando um elemento no DOM não existir. |
RemoteDriverServerException | Essa exceção Selenium é lançada quando o servidor não está respondendo devido ao problema de os recursos descritos não serem adequados. |
ScreenshotException | Não é possível capturar uma tela. |
SessionNotCreatedException | Acontece quando uma nova sessão não pode ser criada com sucesso. |
UnableToSetCookieException | Isso ocorre se um driver não consegue definir um cookie. |
UnexpectedTagNameException | Acontece se uma classe de suporte não obteve um elemento da web conforme o esperado. |
UnhandledAlertException | Essa expectativa ocorre quando há um alerta, mas o WebDriver não consegue realizar a operação de Alerta. |
UnexpectedAlertPresentException | Ocorre quando há o surgimento de um alerta inesperado. |
UnknownMethodException | Essa exceção ocorre quando o comando solicitado corresponde a um URL conhecido, mas não corresponde a uma metodologia para um URL específico. |
UnreachableBrowserException | Esta exceção ocorre apenas quando o navegador não pode ser aberto ou travado por algum motivo. |
UnsupportedCommandException | Isso ocorre quando o WebDriver remoto não envia comandos válidos conforme o esperado. |
Tratamento de exceções de selênio
Aqui estão alguns padrões importantes com os quais você pode lidar com exceções no Selenium WebDriver:
Try-catch : este método pode capturar exceções, que usam uma combinação das palavras-chave try e catch. O comando Try indica o início do bloco e Catch é colocado no final do bloco try, o que ajuda a resolver a Exceção.
tentar{// Código} catch (exceção e) {// Código para manipulação de exceção}
- 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. Várias 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.
tentar{//Código} catch (ExceptionType1 e1) {// Código para lidar com a exceção 1} catch (ExceptionType2 e2) {// Código para lidar com a exceção 2}
- Throw : quando você deseja gerar uma Exception, a palavra-chave Throw é usada para lançar a Exception para tratá-la em tempo de execução. Quando você está lançando uma exceção sem manipulá-la, eles precisam usar a palavra-chave Throw.
public static void anyFunction () lança Exception {tentar {// escreva seu código aqui} Catch (Exceção b) {// Faça o que quiser fazer// Jogue a exceção de volta para o sistemalance (b);}}
- Exceções múltiplas : você pode mencionar várias exceções na cláusula throws.
public static void anyFunction () lança ExceptionType1, ExceptionType2 {tentar {// escreva seu código aqui} catch (ExceptionType1 e1) {// Código para lidar com a exceção 1} catch (ExceptionType1 e2) {// Código para lidar com a exceção 2}
- Finalmente : A palavra-chave Final é usada para criar um bloco de código sob o bloco try. É o código final que o ajuda a executar independentemente da ocorrência de uma exceção
tentar {//Código} catch (ExceptionType1 e1) {// Catch block} catch (ExceptionType2 e2) {// Catch block} catch (ExceptionType3 e3) {// Catch block} finalmente {// O bloco finally sempre é executado.}
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 da pilha, o nome da Exceção e outras descrições úteis.
- toString () : Esta função retorna uma mensagem de texto que descreve 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 usam uma combinação das palavras-chave try e catch.
- Várias capturas o ajudam a lidar com cada tipo de exceção separadamente com um bloco de código separado.
- A palavra-chave Throw é usada para lançar Exception para tratá-la 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 que descreve o nome e a descrição da exceção.
- getMessage (): ajuda a exibir a descrição da exceção.