Apa itu Pengecualian?
Satu pengecualian adalah satu kesilapan yang berlaku pada masa pelaksanaan program. Namun, semasa menjalankan program, bahasa pengaturcaraan menghasilkan pengecualian yang harus ditangani untuk mengelakkan program anda macet.
Pengecualian menunjukkan bahawa, walaupun peristiwa itu dapat terjadi, jenis kejadian ini jarang terjadi. Apabila kaedah tidak dapat menangani Pengecualian, kaedah tersebut dilemparkan ke fungsi pemanggilnya. Akhirnya, apabila pengecualian dikeluarkan dari fungsi utama, program ini dihentikan secara tiba-tiba.
Dalam tutorial ini, anda akan belajar:
- Apa itu Pengecualian?
- Pengecualian dalam pemacu Web Selenium
- Mengendalikan Pengecualian Selenium
- Kaedah untuk menunjukkan Pengecualian
Pengecualian biasa dalam pemacu Web Selenium
Nama pengecualian | Penerangan |
ElementNotVisibleException | Pengecualian Selenium jenis ini berlaku apabila elemen yang ada di DOM mempunyai set ciri sebagai tersembunyi. |
ElementNotSelectableException | Pengecualian Selenium ini berlaku apabila elemen ditampilkan dalam DOM, tetapi anda dapat memilih. Oleh itu, tidak mungkin untuk berinteraksi. |
NoSuchElementException | Pengecualian ini berlaku sekiranya unsur tidak dapat dijumpai. |
NoSuchFrameException | Pengecualian ini berlaku sekiranya target bingkai yang akan diaktifkan tidak ada. |
NoAlertPresentException | Pengecualian ini berlaku apabila anda beralih ke amaran yang tidak disajikan. |
NoSuchWindowException | Pengecualian ini berlaku sekiranya sasaran tetingkap yang hendak ditukar tidak ada. |
StaleElementReferenceException | Pengecualian Selenium ini berlaku apabila elemen web terlepas dari DOM semasa. |
SesiNotFoundException | WebDriver bertindak setelah anda keluar dari penyemak imbas. |
TimeoutException | Dilempar apabila tidak ada masa yang cukup untuk perintah selesai. Contohnya, elemen yang dicari tidak dijumpai dalam masa yang ditentukan. |
WebDriverException | Pengecualian ini berlaku semasa WebDriver bertindak tepat setelah anda menutup penyemak imbas. |
ConnectionClosedException | Pengecualian jenis ini berlaku apabila terdapat pemutusan pada pemacu. |
ElementClickInterceptedException | Perintah tersebut mungkin tidak dapat diselesaikan kerana elemen yang menerima peristiwa menyembunyikan elemen yang diminta diklik. |
ElementNotInteractableException | Pengecualian Selenium ini dilemparkan apabila ada unsur yang ditunjukkan dalam DOM. Walau bagaimanapun, mustahil untuk berinteraksi dengan elemen seperti itu. |
KesalahanInResponseException | Ini berlaku semasa berinteraksi dengan pelanjutan Firefox atau pelayan pemacu jarak jauh. |
ErrorHandler.UnknownServerException | Pengecualian digunakan sebagai placeholder sekiranya pelayan mengembalikan ralat tanpa jejak timbunan. |
ImeActivationFailedException | Jangkaan ini akan berlaku apabila pengaktifan enjin IME gagal. |
ImeNotAvailableException | Ia berlaku apabila sokongan IME tidak tersedia. |
InsecureCertificateException | Navigasi membuat ejen pengguna memukul peringatan sijil. Ini boleh disebabkan oleh sijil TLS yang tidak sah atau tamat tempoh. |
Tidak SahArgumentException | Ia berlaku apabila argumen tidak termasuk dalam jenis yang diharapkan. |
PengecualianCookieDomainException Tidak Sah | Ini berlaku apabila anda cuba menambahkan kuki di bawah domain yang berbeza dan bukannya URL semasa. |
Pengecualian Koordinat Tidak Sah | Jenis Pengecualian ini sepadan dengan operasi berinteraksi yang tidak sah. |
Tidak SahElementStateExceptio | Ia berlaku apabila perintah tidak dapat diselesaikan ketika elemen tidak valid. |
InvalidSessionIdException | Pengecualian ini berlaku apabila ID sesi yang diberikan tidak termasuk dalam senarai sesi aktif. Ini bermaksud sesi tersebut tidak wujud atau tidak aktif. |
PengecualianSwitchToTargetException Tidak Sah | Ini berlaku apabila target bingkai atau tetingkap yang hendak diubah tidak ada. |
Pengecualian Javascript | Masalah ini berlaku semasa menjalankan JavaScript yang diberikan oleh pengguna. |
JsonException | Ia berlaku ketika anda mampu mendapatkan sesi ketika sesi tidak dibuat. |
NoSuchAttributeException | Pengecualian seperti ini berlaku apabila atribut elemen tidak dapat dijumpai. |
MoveTargetOutOfBoundsException | Ia berlaku sekiranya sasaran yang disediakan untuk metodologi ActionChains move () tidak sah. Contohnya, keluar dari dokumen. |
NoSuchContextException | ContextAware melakukan ujian peranti mudah alih. |
NoSuchCookieException | Pengecualian ini berlaku apabila tidak ada kuki yang sepadan dengan nama jalan yang diberikan untuk semua kuki yang berkaitan dari dokumen yang sedang dilayari. |
NotFoundException | Pengecualian ini adalah subkelas WebDriverException. Ini akan berlaku apabila elemen pada DOM tidak wujud. |
RemoteDriverServerException | Pengecualian Selenium ini dilemparkan ketika pelayan tidak bertindak balas kerana masalah bahawa kemampuan yang dijelaskan tidak sesuai. |
Tangkapan SkrinException | Tidak mungkin untuk menangkap skrin. |
SesiNotCreatedException | Ia berlaku apabila sesi baru tidak berjaya dibuat. |
UnableToSetCookieException | Ini berlaku sekiranya pemandu tidak dapat menetapkan kuki. |
Tak dijangkaTagNameException | Berlaku sekiranya kelas sokongan tidak mendapat elemen web seperti yang diharapkan. |
UnhandledAlertException | Jangkaan ini berlaku apabila ada amaran, tetapi WebDriver tidak dapat melakukan operasi Makluman. |
Tidak dijangkaAlertPresentException | Ia berlaku apabila terdapat tanda amaran yang tidak dijangka. |
UnknownMethodException | Pengecualian ini berlaku apabila perintah yang diminta sesuai dengan URL yang diketahui tetapi tidak sesuai dengan metodologi untuk URL tertentu. |
UnreachableBrowserException | Pengecualian ini berlaku hanya apabila penyemak imbas tidak dapat dibuka atau dihancurkan kerana beberapa sebab. |
Tidak disokongCommandException | Ini berlaku apabila WebDriver jarak jauh tidak menghantar arahan yang sah seperti yang diharapkan. |
Mengendalikan Pengecualian Selenium
Berikut adalah beberapa standard penting yang boleh anda gunakan untuk mengatasi Pengecualian di Selenium WebDriver:
Try-catch : Kaedah ini dapat menangkap Pengecualian, yang menggunakan kombinasi kata kunci cubaan dan tangkapan. Perintah cuba menunjukkan permulaan blok, dan Catch diletakkan di akhir blok percubaan, yang membantu menyelesaikan Pengecualian.
cuba{// Kod} tangkapan (Pengecualian e) {// Pengecualian Kod untuk Pengendalian}
- Banyak blok tangkapan : Terdapat pelbagai jenis Pengecualian, dan anda boleh mengharapkan lebih dari satu pengecualian dari satu blok kod. Banyak tangkapan membantu anda menangani setiap jenis Pengecualian secara berasingan dengan sekatan kod yang berasingan. Ini dapat digunakan untuk lebih dari dua blok tangkapan, dan tidak ada batasan jumlah blok tangkapan.
cuba{//Kod} tangkapan (ExceptionType1 e1) {// Kod untuk Mengendalikan Pengecualian 1} tangkapan (ExceptionType2 e2) {// Kod untuk Mengendalikan Pengecualian 2}
- Lempar : Semasa anda ingin menghasilkan Pengecualian, kata kunci Lempar digunakan untuk membuang Pengecualian untuk mengatasinya dalam jangka masa. Apabila anda membuang Pengecualian tanpa mengatasinya, mereka perlu menggunakan kata kunci Lempar.
public static void anyFunction () membuang Pengecualian {cuba {// tulis kod anda di sini} Tangkap (Pengecualian b) {// Lakukan apa sahaja yang anda mahu laksanakan// Buangkan Pengecualian kembali ke sistembaling (b);}}
- Pelbagai Pengecualian : Anda boleh menyebut pelbagai Pengecualian dalam klausa lemparan.
public static void anyFunction () melemparkan ExceptionType1, ExceptionType2 {cuba {// tulis kod anda di sini} tangkapan (ExceptionType1 e1) {// Kod untuk menangani pengecualian 1} tangkapan (ExceptionType1 e2) {// Kod untuk menangani pengecualian 2}
- Akhirnya : Kata kunci akhir digunakan untuk membuat sekatan kod di bawah blok cubaan. Ini adalah kod terakhir yang membantu anda melaksanakan tanpa mengira berlakunya pengecualian
cuba {//Kod} tangkapan (ExceptionType1 e1) {// Catch block} tangkapan (ExceptionType2 e2) {// Catch block} tangkapan (ExceptionType3 e3) {// Catch block} akhirnya {// Blok akhirnya selalu dilaksanakan.}
Kaedah untuk menunjukkan Pengecualian
Anda juga dapat menggunakan kaedah berikut untuk menampilkan Maklumat Pengecualian:
- printStackTrace () : Fungsi ini mencetak jejak tumpukan, nama Pengecualian, dan keterangan berguna lain.
- toString () : Fungsi ini mengembalikan mesej teks yang menerangkan pengecualian nama dan keterangan.
- getMessage () : Membantu memaparkan keterangan Pengecualian.
Ringkasan:
- Pengecualian adalah kesalahan yang berlaku semasa pelaksanaan program.
- Try-catch: Kaedah ini dapat menangkap Pengecualian, yang menggunakan gabungan kata kunci cubaan dan tangkapan.
- Banyak tangkapan membantu anda menangani setiap jenis Pengecualian secara berasingan dengan sekatan kod yang berasingan.
- Kata kunci lemparan digunakan untuk membuang Pengecualian untuk mengatasinya dalam jangka masa.
- printStackTrace (): Fungsi ini mencetak jejak tumpukan, nama Pengecualian, dan keterangan berguna lain
- toString (): Fungsi ini mengembalikan mesej teks yang menerangkan pengecualian nama dan keterangan.
- getMessage (): Membantu memaparkan keterangan Pengecualian.