İstisnalar nedir?
Bir istisna , bir programın yürütülmesi sırasında meydana gelen bir hatadır. Bununla birlikte, bir programı çalıştırırken, programlama dilleri, programınızın çökmesini önlemek için ele alınması gereken bir istisna oluşturur.
İstisna, olay meydana gelebilmesine rağmen, bu tür olayların nadiren meydana geldiğini gösterir. Yöntem İstisnayı işleyemediğinde, çağıran işlevine atılır. Sonunda, ana işlevden bir istisna atıldığında, program aniden sonlandırılır.
Bu eğitimde şunları öğreneceksiniz:
- İstisnalar nedir?
- Selenium Web sürücüsündeki istisnalar
- Selenyum İstisnalarını Ele Alma
- İstisnayı görüntüleme yöntemleri
Selenium Web sürücüsünde Yaygın İstisnalar
İstisna adı | Açıklama |
ElementNotVisibleException | Bu tür bir Selenium istisnası, DOM'daki mevcut bir öğe gizli olarak ayarlanmış bir özelliğe sahip olduğunda ortaya çıkar. |
ElementNotSelectableException | Bu Selenium istisnası, DOM'da bir öğe sunulduğunda ortaya çıkar, ancak seçim yapabilirsiniz. Bu nedenle etkileşim kurmak mümkün değildir. |
NoSuchElementException | Bu İstisna, bir öğe bulunamazsa oluşur. |
NoSuchFrameException | Bu İstisna, geçiş yapılacak çerçeve hedefi yoksa oluşur. |
NoAlertPresentException | Bu İstisna, sunulan bir uyarıya geçtiğinizde oluşur. |
NoSuchWindowException | Bu İstisna, anahtarlanacak pencere hedefi yoksa oluşur. |
StaleElementReferenceException | Bu Selenium istisnası, web öğesi mevcut DOM'dan ayrıldığında meydana gelir. |
SessionNotFoundException | WebDriver, tarayıcıdan çıktıktan sonra hareket ediyor. |
Zaman Aşımı İstisnası | Bir komutun tamamlanması için yeterli zaman olmadığında atılır. Örneğin, aranan öğe belirtilen sürede bulunamadı. |
WebDriverException | Bu İstisna, WebDriver tarayıcıyı kapattıktan hemen sonra hareket ettiğinde gerçekleşir. |
ConnectionClosedException | Bu tür bir İstisna, sürücüde bir bağlantı kesildiğinde gerçekleşir. |
ElementClickInterceptedException | Olayları alan öğe tıklanması istenen öğeyi gizlediği için komut tamamlanamayabilir. |
ElementNotInteractableException | Bu Selenium istisnası, DOM'da herhangi bir öğe sunulduğunda atılır. Ancak böyle bir unsurla etkileşim kurmak imkansızdır. |
ErrorInResponseException | Bu, Firefox eklentisi veya uzak sürücü sunucusuyla etkileşim sırasında gerçekleşir. |
ErrorHandler.UnknownServerException | İstisna, sunucunun yığın izleme olmadan bir hata döndürmesi durumunda yer tutucu olarak kullanılır. |
ImeActivationFailedException | Bu beklenti, IME motor aktivasyonu başarısız olduğunda ortaya çıkacaktır. |
ImeNotAvailableException | IME desteği mevcut olmadığında gerçekleşir. |
InsecureCertificateException | Gezinme, kullanıcı aracısını bir sertifika uyarısına çarptırdı. Bu geçersiz veya süresi dolmuş bir TLS sertifikasına neden olabilir. |
InvalidArgumentException | Bir bağımsız değişken beklenen türe ait olmadığında ortaya çıkar. |
InvalidCookieDomainException | Bu, mevcut URL yerine farklı bir etki alanına bir çerez eklemeye çalıştığınızda gerçekleşir. |
InvalidCoordinatesException | Bu tür bir İstisna, geçerli olmayan etkileşimli bir işlemle eşleşir. |
InvalidElementStateExceptio | Öğe geçersiz olduğunda komut tamamlanamadığında ortaya çıkar. |
InvalidSessionIdException | Bu İstisna, verilen oturum kimliği aktif oturumlar listesine dahil edilmediğinde meydana geldi. Bu, oturumun mevcut olmadığı veya etkin olmadığı anlamına gelir. |
InvalidSwitchToTargetException | Bu, değiştirilecek çerçeve veya pencere hedefi olmadığında meydana gelir. |
JavascriptException | Bu sorun, kullanıcı tarafından verilen JavaScript çalıştırılırken ortaya çıkar. |
JsonException | Seans oluşturulmadığında seansı almayı göze aldığınızda ortaya çıkar. |
NoSuchAttributeException | Bu tür bir İstisna, bir elemanın özniteliği bulunamadığında ortaya çıkar. |
MoveTargetOutOfBoundsException | ActionChains move () metodolojisine sağlanan hedef geçerli değilse gerçekleşir. Örneğin, belgenin dışında. |
NoSuchContextException | ContextAware, mobil cihaz testi yapar. |
NoSuchCookieException | Bu İstisna, şu anda taranan belgenin tüm ilişkili çerezleri için verilen yol adıyla eşleşen hiçbir çerez bulunamadığında ortaya çıkar. |
NotFoundException | Bu İstisna, WebDriverException'ın bir alt sınıfıdır. Bu, DOM'da bir öğe olmadığında ortaya çıkar. |
RemoteDriverServerException | Bu Selenium istisnası, açıklanan özelliklerin uygun olmaması sorunu nedeniyle sunucu yanıt vermediğinde atılır. |
ScreenshotException | Bir ekran yakalamak mümkün değil. |
SessionNotCreatedException | Yeni bir oturum başarıyla oluşturulamadığında gerçekleşir. |
UnableToSetCookieException | Bu, bir sürücü çerez ayarlayamadığında gerçekleşir. |
BeklenmeyenTagNameException | Bir destek sınıfı beklendiği gibi bir web öğesi almadıysa olur. |
UnhandledAlertException | Bu beklenti, bir uyarı olduğunda ortaya çıkar, ancak WebDriver Uyarı işlemini gerçekleştiremez. |
BeklenmeyenAlertPresentException | Beklenmedik bir uyarı ortaya çıktığında ortaya çıkar. |
UnknownMethodException | Bu İstisna, istenen komut bilinen bir URL ile eşleştiğinde ancak belirli bir URL için bir metodoloji ile eşleşmediğinde gerçekleşir. |
UlaşılamazBrowserException | Bu İstisna, yalnızca tarayıcı herhangi bir nedenle açılamadığında veya kilitlenemediğinde ortaya çıkar. |
Desteklenmeyen Komut İstisnası | Bu, uzak WebDriver beklendiği gibi geçerli komutlar göndermediğinde ortaya çıkar. |
Selenyum İstisnalarını Ele Alma
Selenium WebDriver'da İstisnaları işleyebileceğiniz bazı önemli standartlar şunlardır:
Try-catch : Bu yöntem, dene ve yakala anahtar sözcüklerinin bir kombinasyonunu kullanan İstisnaları yakalayabilir. Try komutu bloğun başlangıcını belirtir ve Catch , Exception'ın çözülmesine yardımcı olan try bloğunun sonuna yerleştirilir.
Deneyin{// Kod} catch (İstisna e) {// İstisnayı işleme kodu}
- Birden çok yakalama bloğu : Çeşitli İstisna türleri vardır ve tek bir kod bloğundan birden fazla istisna bekleyebilirsiniz. Birden çok yakalama, her tür İstisnayı ayrı bir kod bloğuyla ayrı ayrı ele almanıza yardımcı olur. İkiden fazla yakalama bloğu için kullanılabilir ve yakalama bloğu sayısında herhangi bir sınırlama yoktur.
Deneyin{// Kod} catch (ExceptionType1 e1) {// İstisna 1'i İşleme Kodu} catch (ExceptionType2 e2) {// İstisna 2'yi İşleme Kodu}
- Throw : Bir İstisna oluşturmak istediğinizde, Throw anahtar sözcüğü çalışma zamanında onu işlemek için İstisna atmak için kullanılır. Bir İstisnayı işlemeden attığınızda, Throw anahtar kelimesini kullanmaları gerekir.
public static void anyFunction () Exception {atarDeneyin {// kodunuzu buraya yazın} Yakala (İstisna b) {// Ne yapmak istiyorsan onu yap// İstisnayı sisteme geri atınatmak (b);}}
- Çoklu İstisnalar : Atar cümlesinde çeşitli İstisnalardan bahsedebilirsiniz.
public static void anyFunction () ExceptionType1, ExceptionType2 {Deneyin {// kodunuzu buraya yazın} catch (ExceptionType1 e1) {// 1. istisna işlemek için kod} catch (ExceptionType1 e2) {// 2. istisna işlemek için kod}
- Son olarak : Final anahtar sözcüğü, try bloğu altında bir kod bloğu oluşturmak için kullanılır. Bir istisnanın meydana gelmesinden bağımsız olarak yürütmenize yardımcı olan son koddur.
Deneyin {// Kod} catch (ExceptionType1 e1) {// Bloğu yakala} catch (ExceptionType2 e2) {// Bloğu yakala} catch (ExceptionType3 e3) {// Bloğu yakala} en sonunda {// Nihayet bloğu her zaman çalışır.}
İstisnayı görüntüleme yöntemleri
İstisna Bilgilerini görüntülemek için aşağıdaki yöntemleri de kullanabilirsiniz:
- printStackTrace () : Bu işlev yığın izini, İstisnanın adını ve diğer yararlı açıklamaları yazdırır.
- toString () : Bu işlev, istisna adını ve açıklamasını açıklayan bir metin mesajı döndürür.
- getMessage () : İstisnanın açıklamasını görüntülemeye yardımcı olur.
Özet:
- Bir istisna, bir programın yürütülmesi sırasında meydana gelen bir hatadır.
- Try-catch: Bu yöntem, dene ve yakala anahtar sözcüklerinin bir kombinasyonunu kullanan İstisnaları yakalayabilir.
- Birden çok yakalama, her tür İstisnayı ayrı bir kod bloğu ile ayrı ayrı ele almanıza yardımcı olur.
- Throw anahtar sözcüğü, çalışma zamanında işlemek için İstisna atmak için kullanılır.
- printStackTrace (): Bu işlev yığın izini, İstisnanın adını ve diğer yararlı açıklamaları yazdırır.
- toString (): Bu işlev, istisna adını ve açıklamasını açıklayan bir metin mesajı döndürür.
- getMessage (): İstisnanın açıklamasını görüntülemeye yardımcı olur.