Co to są wyjątki?
Wyjątkiem jest błąd, co dzieje się w czasie wykonywania programu. Jednak podczas uruchamiania programu języki programowania generują wyjątek, który należy obsłużyć, aby uniknąć awarii programu.
Wyjątek wskazuje, że chociaż zdarzenie może wystąpić, tego typu zdarzenie zdarza się rzadko. Gdy metoda nie jest w stanie obsłużyć wyjątku, jest zgłaszana do funkcji wywołującej. Ostatecznie, gdy wyjątek jest wyrzucany z funkcji głównej, program jest nagle przerywany.
W tym samouczku dowiesz się:
- Co to są wyjątki?
- Wyjątki w sterowniku Selenium Web
- Obsługa wyjątków selenu
- Metody wyświetlania wyjątku
Typowe wyjątki w sterowniku Selenium Web
Nazwa wyjątku | Opis |
ElementNotVisibleException | Ten typ wyjątku Selenium występuje, gdy istniejący element w DOM ma funkcję ustawioną jako ukrytą. |
ElementNotSelectableException | Ten wyjątek selenu występuje, gdy element jest prezentowany w DOM, ale możesz wybrać. Dlatego nie ma możliwości interakcji. |
NoSuchElementException | Ten wyjątek występuje, jeśli nie można znaleźć elementu. |
NoSuchFrameException | Ten wyjątek występuje, jeśli cel ramki, na który ma zostać przełączona, nie istnieje. |
NoAlertPresentException | Ten wyjątek występuje, gdy przełączysz się na brak prezentowanego alertu. |
NoSuchWindowException | Ten wyjątek występuje, jeśli cel okna, który ma zostać przełączony, nie istnieje. |
StaleElementReferenceException | Ten wyjątek Selenium występuje, gdy element sieciowy jest odłączany od bieżącego DOM. |
SessionNotFoundException | WebDriver działa po zamknięciu przeglądarki. |
TimeoutException | Rzucane, gdy nie ma czasu na wykonanie polecenia. Na przykład szukany element nie został znaleziony w określonym czasie. |
WebDriverException | Ten wyjątek ma miejsce, gdy WebDriver działa zaraz po zamknięciu przeglądarki. |
ConnectionClosedException | Ten typ wyjątku ma miejsce, gdy występuje rozłączenie w sterowniku. |
ElementClickInterceptedException | Polecenie może nie zostać wykonane, ponieważ element odbierający zdarzenia zasłania żądany element, który został kliknięty. |
ElementNotInteractableException | Ten wyjątek selenu jest generowany, gdy jakikolwiek element jest prezentowany w DOM. Jednak interakcja z takim elementem jest niemożliwa. |
ErrorInResponseException | Dzieje się tak podczas interakcji z rozszerzeniem Firefox lub zdalnym serwerem sterownika. |
ErrorHandler.UnknownServerException | Wyjątek jest używany jako symbol zastępczy w przypadku, gdy serwer zwraca błąd bez śladu stosu. |
ImeActivationFailedException | To oczekiwanie pojawi się, gdy aktywacja silnika IME nie powiedzie się. |
ImeNotAvailableException | Ma to miejsce, gdy obsługa IME jest niedostępna. |
InsecureCertificateException | Nawigacja sprawiła, że agent użytkownika wyświetlił ostrzeżenie dotyczące certyfikatu. Może to być spowodowane nieprawidłowym lub wygasłym certyfikatem TLS. |
InvalidArgumentException | Występuje, gdy argument nie należy do oczekiwanego typu. |
InvalidCookieDomainException | Dzieje się tak, gdy próbujesz dodać plik cookie w innej domenie zamiast bieżącego adresu URL. |
InvalidCoordinatesException | Ten typ wyjątku pasuje do operacji interakcji, która jest nieprawidłowa. |
InvalidElementStateExceptio | Występuje, gdy polecenie nie może zostać zakończone, gdy element jest nieprawidłowy. |
InvalidSessionIdException | Ten wyjątek miał miejsce, gdy podany identyfikator sesji nie znajduje się na liście aktywnych sesji. Oznacza to, że sesja nie istnieje lub jest nieaktywna. |
InvalidSwitchToTargetException | Dzieje się tak, gdy nie istnieje docelowa ramka lub okno do przełączenia. |
JavascriptException | Ten problem występuje podczas wykonywania kodu JavaScript podanego przez użytkownika. |
JsonException | Występuje, gdy możesz pozwolić sobie na sesję, gdy sesja nie została utworzona. |
NoSuchAttributeException | Ten rodzaj wyjątku występuje, gdy nie można znaleźć atrybutu elementu. |
MoveTargetOutOfBoundsException | Ma to miejsce, jeśli obiekt docelowy dostarczony do metodologii move () ActionChains jest nieprawidłowy. Na przykład poza dokumentem. |
NoSuchContextException | ContextAware przeprowadza testy urządzeń mobilnych. |
NoSuchCookieException | Ten wyjątek występuje, gdy nie znaleziono pliku cookie pasującego do podanej ścieżki dla wszystkich powiązanych plików cookie aktualnie przeglądanego dokumentu. |
NotFoundException | Ten wyjątek jest podklasą WebDriverException. Dzieje się tak, gdy element w DOM nie istnieje. |
RemoteDriverServerException | Ten wyjątek Selenium jest generowany, gdy serwer nie odpowiada z powodu problemu, że opisane możliwości są nieprawidłowe. |
ScreenshotException | Nie można przechwycić ekranu. |
SessionNotCreatedException | Dzieje się tak, gdy nie można pomyślnie utworzyć nowej sesji. |
UnableToSetCookieException | Dzieje się tak, jeśli sterownik nie może ustawić pliku cookie. |
Nieoczekiwany wyjątekTagNameException | Dzieje się, jeśli klasa pomocnicza nie otrzymała elementu WWW zgodnie z oczekiwaniami. |
UnhandledAlertException | To oczekiwanie występuje, gdy występuje alert, ale program WebDriver nie jest w stanie wykonać operacji alertu. |
NieoczekiwanyAlertPresentException | Występuje, gdy pojawia się nieoczekiwany alert. |
UnknownMethodException | Ten wyjątek występuje, gdy żądane polecenie pasuje do znanego adresu URL, ale nie jest zgodne z metodologią dla określonego adresu URL. |
UnreachableBrowserException | Ten wyjątek występuje tylko wtedy, gdy z jakiegoś powodu nie można otworzyć lub zawiesić przeglądarki. |
UnsupportedCommandException | Dzieje się tak, gdy zdalny sterownik WebDriver nie wysyła prawidłowych poleceń zgodnie z oczekiwaniami. |
Obsługa wyjątków selenu
Oto kilka ważnych standardów, za pomocą których można obsługiwać wyjątki w Selenium WebDriver:
Try-catch : ta metoda może przechwytywać wyjątki, które wykorzystują kombinację słów kluczowych try i catch. Polecenie Try wskazuje początek bloku, a Catch jest umieszczane na końcu bloku try, co pomaga rozwiązać Wyjątek.
próbować{// Kod} catch (wyjątek e) {// Kod obsługi wyjątku}
- Wiele bloków catch : istnieją różne typy wyjątków i możesz oczekiwać więcej niż jednego wyjątku od pojedynczego bloku kodu. Wielokrotne przechwytywanie pomaga w obsłudze każdego typu wyjątków osobno za pomocą oddzielnego bloku kodu. Może być używany dla więcej niż dwóch bloków catch i nie ma ograniczenia liczby bloków catch.
próbować{//Kod} catch (ExceptionType1 e1) {// Kod obsługi wyjątku 1} catch (ExceptionType2 e2) {// Kod obsługi wyjątku 2}
- Throw : Gdy chcesz wygenerować wyjątek, słowo kluczowe Throw jest używane do zgłaszania wyjątku, aby obsłużyć go w czasie wykonywania. Kiedy rzucasz wyjątek bez jego obsługi, muszą użyć słowa kluczowego Throw.
public static void anyFunction () zgłasza wyjątek {próbować {// napisz swój kod tutaj} Połów (wyjątek b) {// Rób wszystko, co chcesz// Wrzuć wyjątek z powrotem do systemurzut (b);}}
- Wiele wyjątków : możesz wspomnieć o różnych wyjątkach w klauzuli throws.
public static void anyFunction () rzuca ExceptionType1, ExceptionType2 {próbować {// napisz swój kod tutaj} catch (ExceptionType1 e1) {// Kod do obsługi wyjątku 1} catch (ExceptionType1 e2) {// Kod do obsługi wyjątku 2}
- Wreszcie : słowo kluczowe Final służy do tworzenia bloku kodu pod blokiem try. Jest to ostatni kod, który pomoże Ci wykonać się niezależnie od wystąpienia wyjątku
próbować {//Kod} catch (ExceptionType1 e1) {// Złap blok} catch (ExceptionType2 e2) {// Złap blok} catch (ExceptionType3 e3) {// Złap blok} Wreszcie {// Ostatni blok jest zawsze wykonywany.}
Metody wyświetlania wyjątku
Możesz również użyć następujących metod, aby wyświetlić informacje o wyjątku:
- printStackTrace () : Ta funkcja wyświetla ślad stosu, nazwę wyjątku i inne przydatne opisy.
- toString () : Ta funkcja zwraca wiadomość tekstową opisującą nazwę i opis wyjątku.
- getMessage () : pomaga wyświetlić opis wyjątku.
Podsumowanie:
- Wyjątkiem jest błąd, który występuje w czasie wykonywania programu.
- Try-catch: ta metoda może przechwytywać wyjątki, które wykorzystują kombinację słów kluczowych try i catch.
- Wielokrotne przechwytywanie pomaga w obsłudze każdego typu wyjątków osobno za pomocą oddzielnego bloku kodu.
- Słowo kluczowe Throw służy do zgłaszania wyjątku w celu obsługi go w czasie wykonywania.
- printStackTrace (): Ta funkcja wyświetla ślad stosu, nazwę wyjątku i inne przydatne opisy
- toString (): Ta funkcja zwraca wiadomość tekstową opisującą nazwę i opis wyjątku.
- getMessage (): pomaga wyświetlić opis wyjątku.