معالجة الاستثناءات في Selenium برنامج تشغيل الويب (الأنواع)
ما هي الاستثناءات؟
An استثناء هو الخطأ الذي يحدث أثناء تنفيذ البرنامج. ومع ذلك، أثناء تشغيل البرنامج، تولد لغات البرمجة استثناءً يجب معالجته لتجنب تعطل البرنامج.
يشير الاستثناء إلى أنه على الرغم من إمكانية وقوع الحدث، إلا أن هذا النوع من الأحداث يحدث بشكل غير متكرر. عندما لا تكون الطريقة قادرة على التعامل مع الاستثناء، يتم طرحها إلى وظيفة المتصل الخاصة بها.
أنواع الاستثناءات في Selenium برنامج تشغيل الويب
1.ElementNotVisibleException: هذا النوع من Selenium يحدث الاستثناء عندما يحتوي عنصر موجود في DOM على ميزة تم تعيينها على أنها مخفية.
2.ElementNotSelectableException: هذه Selenium يحدث الاستثناء عندما يتم تقديم عنصر في ملف DOM، ولكن يمكنك أن تكون قادرًا على التحديد. ولذلك، ليس من الممكن التفاعل.
3. NoSuchElementException: يحدث هذا الاستثناء إذا تعذر العثور على عنصر.
4. NoSuchFrameException: يحدث هذا الاستثناء إذا كان هدف الإطار الذي سيتم التبديل إليه غير موجود.
5. لا أليرتبريسينتكسسيبشن: يحدث هذا الاستثناء عند التبديل إلى عدم وجود تنبيه مقدم.
6. NoSuchWindowException: يحدث هذا الاستثناء في حالة عدم وجود هدف النافذة المراد تبديلها.
7.استثناء StaleElementReferenceException: هذه Selenium يحدث الاستثناء عندما يتم فصل عنصر الويب عن DOM الحالي.
8. سيشننوتفوندكسسيبشن: يعمل WebDriver بعد إنهاء المتصفح.
9. استثناء المهلة: يتم طرحه عندما لا يكون هناك وقت كافٍ لإكمال الأمر. على سبيل المثال، لم يتم العثور على العنصر الذي تم البحث عنه في الوقت المحدد.
10. استثناء WebDriver: يحدث هذا الاستثناء عندما يعمل WebDriver مباشرة بعد إغلاق المتصفح.
11. استثناء مغلق: يحدث هذا النوع من الاستثناءات عندما يكون هناك انقطاع في برنامج التشغيل.
12.ElementClickInterceptedException: قد لا يكتمل الأمر لأن العنصر الذي يستقبل الأحداث يخفي العنصر المطلوب النقر عليه.
13.ElementNotInteractableException: هذه Selenium يتم طرح الاستثناء عند ظهور أي عنصر في DOM. ومع ذلك، فمن المستحيل التفاعل مع مثل هذا العنصر.
14. ارورينريسبونسيكسسيبشن: يحدث هذا أثناء التفاعل مع Firefox ملحق أو خادم برنامج التشغيل البعيد.
15. ErrorHandler.UnknownServerException: يتم استخدام الاستثناء كعنصر نائب في حالة قيام الخادم بإرجاع خطأ دون تتبع المكدس.
16. إيماكتيفيشنفيليدكسسيبشن: سيحدث هذا التوقع عند فشل تنشيط مشغل IME.
17.ImeNotAvailableException: يحدث ذلك عندما يكون دعم IME غير متوفر.
18. استثناء الشهادة غير الآمنة: أدى التنقل إلى وصول وكيل المستخدم إلى تحذير الشهادة. يمكن أن يحدث هذا بسبب شهادة TLS غير صالحة أو منتهية الصلاحية.
19. استثناء وسيطة غير صالحة: يحدث ذلك عندما لا تنتمي الوسيطة إلى النوع المتوقع.
20. استثناء غير صالح لملف تعريف الارتباط: يحدث هذا عندما تحاول إضافة ملف تعريف الارتباط ضمن مجال مختلف بدلاً من عنوان URL الحالي.
21. استثناء الإحداثيات غير صالح: يتطابق هذا النوع من الاستثناءات مع عملية تفاعلية غير صالحة.
22.InvalidElementStateException: يحدث ذلك عندما لا يمكن إنهاء الأمر عندما يكون العنصر غير صالح.
23.InvalidSessionIdException: حدث هذا الاستثناء عندما لم يتم تضمين معرف الجلسة المحدد في قائمة الجلسات النشطة. وهذا يعني أن الجلسة غير موجودة أو غير نشطة أيضًا.
24.InvalidSwitchToTargetاستثناء: يحدث هذا عندما لا يكون الإطار أو الإطار المستهدف المراد تبديله موجودًا.
25 Javascriptاستثناء: تحدث هذه المشكلة أثناء التنفيذ Javaالنص المقدم من قبل المستخدم.
26. جسون استثناء: يحدث ذلك عندما تتمكن من الحصول على الجلسة عندما لا يتم إنشاء الجلسة.
27. نوسوتشاتريبوتيكسسيبشن: يحدث هذا النوع من الاستثناءات عندما لا يمكن العثور على سمة عنصر ما.
28. نقلTargetاستثناء خارج الحدود: يحدث ذلك إذا كان الهدف المقدم لمنهجية ActionChains move() غير صالح. على سبيل المثال، خارج الوثيقة.
29. نو سوتشكونتيكستكسسيبشن: يقوم تطبيق contextAware باختبار الأجهزة المحمولة.
30. NoSuchCookieException: يحدث هذا الاستثناء عندما لا يتم العثور على ملف تعريف ارتباط مطابق لاسم المسار المحدد لجميع ملفات تعريف الارتباط المرتبطة بمستند التصفح الحالي.
31. نوتفوندكسسيبشن: هذا الاستثناء هو فئة فرعية من WebDriverException. سيحدث هذا عند عدم وجود عنصر في DOM.
32. ريموت درايفر سيرفير إستثناء: هذه Selenium يتم طرح الاستثناء عندما لا يستجيب الخادم بسبب مشكلة عدم كفاية الإمكانيات الموضحة.
33. استثناء لقطة الشاشة: ليس من الممكن التقاط الشاشة.
34. سيسونوتكريتديكسسيبشن: يحدث ذلك عندما يتعذر إنشاء جلسة جديدة بنجاح.
35. UnableToSetCookieException: يحدث هذا إذا كان السائق غير قادر على تعيين ملف تعريف الارتباط.
36. استثناء غير متوقع، اسم العلامة: يحدث إذا لم تحصل فئة الدعم على عنصر الويب كما هو متوقع.
37.UnhandledAlertException: يحدث هذا التوقع عندما يكون هناك تنبيه، ولكن WebDriver غير قادر على تنفيذ عملية التنبيه.
38. استثناء غير متوقعاليرتبريسينت: يحدث ذلك عندما يظهر تنبيه غير متوقع.
39. استثناء طريقة غير معروفة: يحدث هذا الاستثناء عندما يتطابق الأمر المطلوب مع عنوان URL معروف ولكنه لا يتطابق مع منهجية عنوان URL محدد.
40. استثناء المتصفح غير القابل للوصول: يحدث هذا الاستثناء فقط عندما يتعذر فتح المتصفح أو تعطله لسبب ما.
41. استثناء الأوامر غير المدعومة: يحدث هذا عندما لا يرسل WebDriver البعيد أوامر صالحة كما هو متوقع.
كيفية التعامل مع الاستثناءات في Selenium
فيما يلي بعض المعايير المهمة التي يمكنك من خلالها التعامل مع الاستثناءات Selenium برنامج تشغيل الويب:
الخطوة 1) حاول الالتقاط
يمكن لهذه الطريقة التقاط الاستثناءات، والتي تستخدم مجموعة من الكلمات الأساسية للمحاولة والالتقاط. يشير أمر المحاولة إلى بداية الكتلة، و يو كاتش يتم وضعها في نهاية كتلة المحاولة، مما يساعد على حل الاستثناء.
try { // Code } catch (Exception e) { // Code for Handling exception }
الخطوة 2) كتل الصيد المتعددة
هناك أنواع مختلفة من الاستثناءات، ويمكنك توقع أكثر من استثناء واحد من كتلة واحدة من التعليمات البرمجية. تساعدك عمليات الالتقاط المتعددة على التعامل مع كل نوع من الاستثناءات بشكل منفصل باستخدام كتلة منفصلة من التعليمات البرمجية. يمكن استخدامه لأكثر من كتلتين للالتقاط، وليس هناك قيود على عدد كتل الالتقاط.
try { //Code } catch (ExceptionType1 e1) { //Code for Handling Exception 1 } catch (ExceptionType2 e2) { //Code for Handling Exception 2 }
الخطوة 3) رمي
عندما تريد إنشاء استثناء، يتم استخدام الكلمة الأساسية Throw لرمي استثناء للتعامل معه في وقت التشغيل. عندما تقوم برمي استثناء دون التعامل معه، فيجب عليك استخدام الكلمة الأساسية Throw.
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) استثناءات متعددة
يمكنك ذكر استثناءات مختلفة في جملة الرميات.
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 }
الخطوة 5) وأخيرا
يتم استخدام الكلمة الأساسية النهائية لإنشاء كتلة من التعليمات البرمجية ضمن كتلة المحاولة. إنه الكود النهائي الذي يساعدك على التنفيذ بغض النظر عن حدوث استثناء
try { //Code } catch (ExceptionType1 e1) { //Catch block } catch (ExceptionType2 e2) { //Catch block } catch (ExceptionType3 e3) { //Catch block } finally { //The finally block always executes. }
طرق عرض الاستثناء
يمكنك أيضًا استخدام الطرق التالية لعرض معلومات الاستثناء:
- طباعة تتبع المكدس(): تقوم هذه الوظيفة بطباعة تتبع المكدس واسم الاستثناء والوصف المفيد الآخر.
- إلى سلسلة(): تقوم هذه الوظيفة بإرجاع رسالة نصية تصف اسم الاستثناء ووصفه.
- getMessage (): يساعد على عرض وصف الاستثناء.
الملخص
- الاستثناء هو الخطأ الذي يحدث أثناء تنفيذ البرنامج.
- محاولة الالتقاط: يمكن لهذه الطريقة التقاط الاستثناءات، والتي تستخدم مجموعة من الكلمات الرئيسية للمحاولة والالتقاط.
- تساعدك عمليات الالتقاط المتعددة على التعامل مع كل نوع من الاستثناءات بشكل منفصل باستخدام كتلة منفصلة من التعليمات البرمجية.
- يتم استخدام الكلمة الأساسية Throw لرمي الاستثناء للتعامل معها في وقت التشغيل.
- printStackTrace(): تقوم هذه الوظيفة بطباعة تتبع المكدس واسم الاستثناء والوصف المفيد الآخر
- toString(): تقوم هذه الدالة بإرجاع رسالة نصية تصف اسم الاستثناء ووصفه.
- getMessage (): يساعد على عرض وصف الاستثناء.