Erandi käsitlemine Selenium Veebidraiver (tüübid)

Mis on erand?

An erand on tõrge, mis ilmneb programmi täitmise ajal. Programmi käitamise ajal loovad programmeerimiskeeled aga erandi, mida tuleks käsitleda, et vältida programmi kokkujooksmist.

Erand näitab, et kuigi sündmus võib juhtuda, juhtub seda tüüpi sündmusi harva. Kui meetod ei saa erandiga hakkama, suunatakse see helistaja funktsioonile.

Erandite tüübid Selenium Veebidraiver

1. ElementNotVisibleException: Seda tüüpi Selenium erand ilmneb siis, kui DOM-i olemasoleva elemendi funktsioon on peidetud.

2. ElementNotSelectableException: see Selenium erand tekib siis, kui element esitatakse failis DOM, kuid saate valida. Seetõttu ei ole võimalik suhelda.

3. NoSuchElementException: See erand ilmneb juhul, kui elementi ei leitud.

4. NoSuchFrameException: See erand ilmneb siis, kui kaadri sihtmärki, millele lülitatakse, pole olemas.

5. NoAlertPresentException: See erand ilmneb siis, kui lülitute välja hoiatuse puudumisele.

6. NoSuchWindowException: See erand ilmneb siis, kui lülitit ei eksisteeri.

7. StaleElementReferenceException: see Selenium erand juhtub siis, kui veebielement eraldatakse praegusest DOM-ist.

8. SessionNotFoundException: WebDriver tegutseb pärast brauseri sulgemist.

9. TimeoutException: Visatakse, kui käsu täitmiseks pole piisavalt aega. Näiteks ei leitud otsitud elementi määratud aja jooksul.

10. WebDriverException: See erand kehtib siis, kui WebDriver tegutseb kohe pärast brauseri sulgemist.

11. ConnectionClosedException: Seda tüüpi erand leiab aset siis, kui draiveris on ühendus katkenud.

12. ElementClickInterceptedException: Käsku ei pruugita lõpule viia, kuna sündmusi vastuvõttev element varjab elementi, millel klõpsati.

13. ElementNotInteractableException: see Selenium erand tehakse siis, kui DOM-is esitatakse mis tahes element. Sellise elemendiga on aga võimatu suhelda.

14. ErrorInResponseException: See juhtub kasutajaga suhtlemisel Firefox laiendus või kaugdraiveri server.

15. ErrorHandler.UnknownServerException: Erandit kasutatakse kohatäidisena juhuks, kui server tagastab vea ilma virnajäljeta.

16. ImeActivationFailedException: See ootus ilmneb siis, kui IME-mootori aktiveerimine ebaõnnestub.

17. ImeNotAvailableException: See toimub siis, kui IME tugi pole saadaval.

18. InsecureCertificateException: Navigeerimine pani kasutajaagendi näitama sertifikaadi hoiatust. Selle põhjuseks võib olla kehtetu või aegunud TLS-sertifikaat.

19. InvalidArgumentException: See ilmneb siis, kui argument ei kuulu oodatud tüüpi.

20. InvalidCookieDomainException: See juhtub siis, kui proovite praeguse URL-i asemel mõne muu domeeni alla lisada küpsise.

21. InvalidCoordinatesException: Seda tüüpi erand vastab interakteeruvale toimingule, mis ei kehti.

22. InvalidElementStateException: See ilmneb siis, kui käsku ei saa lõpetada, kui element on kehtetu.

23. InvalidSessionIdException: See erand leidis aset siis, kui antud seansi ID ei sisaldu aktiivsete seansside loendis. See tähendab, et seanssi ei eksisteeri või see on passiivne.

24. InvalidSwitchToTargetErand: See juhtub siis, kui vahetatavat raami või akna sihtmärki pole olemas.

25. JavascriptErand: See probleem ilmneb käivitamise ajal JavaKasutaja antud skript.

26. JsonException: See juhtub siis, kui lubate endale seansi hankida, kui seanssi pole loodud.

27. NoSuchAttributeException: Seda tüüpi erand ilmneb siis, kui elemendi atribuuti ei leitud.

28. LiigutaTargetOutOfBoundsException: See toimub juhul, kui ActionChains move() metoodikale antud sihtmärk ei kehti. Näiteks dokumendist väljas.

29. NoSuchContextException: ContextAware testib mobiilseadmeid.

30. NoSuchCookieException: See erand ilmneb siis, kui antud teenimega sobivat küpsist ei leitud kõigi praegu sirvitava dokumendiga seotud küpsiste jaoks.

31. NotFoundException: See erand on WebDriverExceptioni alamklass. See juhtub siis, kui DOM-is elementi pole.

32. RemoteDriverServerException: see Selenium erand tehakse siis, kui server ei reageeri kirjeldatud võimaluste ebapiisava probleemi tõttu.

33. Ekraanipildi erand: Ekraani ei ole võimalik jäädvustada.

34. SessionNotCreatedException: See juhtub siis, kui uut seanssi ei õnnestunud luua.

35. UnableToSetCookieException: See juhtub siis, kui draiver ei saa küpsist seadistada.

36. UnexpectedTagNameException: Juhtub, kui tugiklass ei saanud ootuspäraselt veebielementi.

37. UnhandledAlertException: See ootus ilmneb siis, kui on olemas hoiatus, kuid WebDriver ei saa hoiatustoimingut sooritada.

38. UnexpectedAlertPresentException: See tekib siis, kui ilmub ootamatu hoiatus.

39. UnknownMethodException: See erand juhtub siis, kui taotletud käsk ühtib teadaoleva URL-iga, kuid ei ühti konkreetse URL-i metoodikaga.

40. UnreachableBrowserException: See erand ilmneb ainult siis, kui brauserit ei saa mingil põhjusel avada või see jookseb kokku.

41. UnsupportedCommandException: See juhtub siis, kui kaug-WebDriver ei saada ootuspäraselt kehtivaid käske.

Kuidas käsitleda erandeid Selenium

Siin on mõned olulised standardid, mille abil saate erandeid käsitleda Selenium Veebidraiver:

Samm 1) Proovige püüda

See meetod võib püüda erandeid, mis kasutab proovi ja püüdmise märksõnade kombinatsiooni. Proovi käsk näitab ploki algust ja maadlus asetatakse prooviploki lõppu, mis aitab erandit lahendada.

try
{
// Code
} catch (Exception e) {
// Code for Handling exception
}

2. samm) Mitu püüdmisplokki

Erandeid on erinevat tüüpi ja ühest koodiplokist võib oodata rohkem kui ühte erandit. Mitu püüdmist aitavad teil käsitleda igat tüüpi erandeid eraldi, kasutades eraldi koodiplokki. Seda saab kasutada rohkem kui kahe püüdmisploki jaoks ja püüdmisplokkide arv ei ole piiratud.

try
{
//Code
} catch (ExceptionType1 e1) {
//Code for Handling Exception 1
} catch (ExceptionType2 e2) {
//Code for Handling Exception 2
}

Samm 3) Viska

Kui soovite luua erandi, kasutatakse erandi viskamiseks märksõna Viska, et seda käitamisajal käsitleda. Kui teete erandi ilma seda käsitlemata, peavad nad kasutama märksõna Viska.

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);
}
}

4. samm) Mitu erandit

Viskeklauslis võib mainida erinevaid erandeid.

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
}

Samm 5) Lõpuks

Märksõna Final kasutatakse prooviploki alla koodiploki loomiseks. See on viimane kood, mis aitab teil käivitada, olenemata erandi esinemisest

try {
//Code
} catch (ExceptionType1 e1) {
//Catch block
} catch (ExceptionType2 e2) {
//Catch block
} catch (ExceptionType3 e3) {
//Catch block
} finally {
//The finally block always executes.
}

Erandi kuvamise meetodid

Eranditeabe kuvamiseks saate kasutada ka järgmisi meetodeid.

  • printStackTrace(): see funktsioon prindib virna jälje, erandi nime ja muu kasuliku kirjelduse.
  • toString (): see funktsioon tagastab tekstsõnumi, mis kirjeldab erandi nime ja kirjeldust.
  • getMessage(): Aitab kuvada erandi kirjeldust.

kokkuvõte

  • Erandiks on tõrge, mis ilmneb programmi täitmise ajal.
  • Proovi püüda: see meetod suudab püüda erandeid, mis kasutab proovi ja püüdmise märksõnade kombinatsiooni.
  • Mitu püüdmist aitavad teil käsitleda igat tüüpi erandeid eraldi, kasutades eraldi koodiplokki.
  • Viska märksõna kasutatakse erandi viskamiseks, et seda käitamisajal käsitleda.
  • printStackTrace(): see funktsioon prindib virna jälje, erandi nime ja muu kasuliku kirjelduse
  • toString(): see funktsioon tagastab tekstsõnumi, mis kirjeldab erandi nime ja kirjeldust.
  • getMessage(): Aitab kuvada erandi kirjeldust.