การจัดการข้อยกเว้นใน Selenium เว็บไดรเวอร์ (ประเภท)

ข้อยกเว้นคืออะไร?

An ข้อยกเว้น เป็นข้อผิดพลาดที่เกิดขึ้นขณะรันโปรแกรม อย่างไรก็ตาม ในขณะที่รันโปรแกรม ภาษาการเขียนโปรแกรมจะสร้างข้อยกเว้นที่ควรได้รับการจัดการเพื่อหลีกเลี่ยงไม่ให้โปรแกรมของคุณเสียหาย

ข้อยกเว้นระบุว่าถึงแม้เหตุการณ์ดังกล่าวจะเกิดขึ้นได้ แต่เหตุการณ์ประเภทนี้จะเกิดขึ้นไม่บ่อยนัก เมื่อเมธอดไม่สามารถจัดการ Exception ได้ เมธอดจะถูกส่งไปยังฟังก์ชันผู้เรียก

ประเภทของข้อยกเว้นใน Selenium ไดรเวอร์เว็บ

1. ElementNotVisibleException: ประเภทนี้ Selenium ข้อยกเว้นเกิดขึ้นเมื่อองค์ประกอบที่มีอยู่ใน DOM มีคุณลักษณะที่ตั้งค่าเป็นซ่อนอยู่

2. ElementNotSelectableException: Selenium ข้อยกเว้นเกิดขึ้นเมื่อองค์ประกอบถูกนำเสนอใน DOMแต่คุณสามารถเลือกได้ ดังนั้นจึงไม่สามารถโต้ตอบได้

3. NoSuchElementException: ข้อยกเว้นนี้เกิดขึ้นหากไม่พบองค์ประกอบ

4. NoSuchFrameException: ข้อยกเว้นนี้เกิดขึ้นหากไม่มีเป้าหมายเฟรมที่จะเปลี่ยนไปใช้

5. NoAlertPresentException: ข้อยกเว้นนี้เกิดขึ้นเมื่อคุณสลับไปที่ไม่มีการแจ้งเตือน

6. NoSuchWindowException: ข้อยกเว้นนี้เกิดขึ้นหากไม่มีเป้าหมายหน้าต่างที่จะสลับอยู่

7. StaleElementReferenceException: Selenium ข้อยกเว้นเกิดขึ้นเมื่อองค์ประกอบเว็บถูกแยกออกจาก DOM ปัจจุบัน

8. SessionNotFoundException: WebDriver ทำงานหลังจากที่คุณออกจากเบราว์เซอร์

9. ข้อยกเว้นการหมดเวลา: โยนเมื่อมีเวลาไม่เพียงพอสำหรับคำสั่งให้เสร็จสิ้น ตัวอย่างเช่น ไม่พบองค์ประกอบที่ค้นหาในเวลาที่กำหนด

10. ข้อยกเว้นไดรเวอร์เว็บ: ข้อยกเว้นนี้เกิดขึ้นเมื่อ WebDriver ทำงานทันทีหลังจากที่คุณปิดเบราว์เซอร์

11. การเชื่อมต่อปิดข้อยกเว้น: ข้อยกเว้นประเภทนี้จะเกิดขึ้นเมื่อมีการขาดการเชื่อมต่อในไดรเวอร์

12. ElementClickInterceptedException: คำสั่งอาจไม่เสร็จสมบูรณ์เนื่องจากองค์ประกอบที่ได้รับเหตุการณ์กำลังปกปิดองค์ประกอบที่ได้รับการร้องขอให้คลิก

13. ElementNotInteractableException: Selenium ข้อยกเว้นจะเกิดขึ้นเมื่อมีการนำเสนอองค์ประกอบใดๆ ใน DOM อย่างไรก็ตาม เป็นไปไม่ได้ที่จะมีปฏิสัมพันธ์กับองค์ประกอบดังกล่าว

14. ErrorInResponseException: สิ่งนี้จะเกิดขึ้นขณะโต้ตอบกับ Firefox ส่วนขยายหรือเซิร์ฟเวอร์ไดรเวอร์ระยะไกล

15. ErrorHandler.UnknownServerException: ข้อยกเว้นถูกใช้เป็นตัวยึดตำแหน่งในกรณีที่เซิร์ฟเวอร์ส่งคืนข้อผิดพลาดโดยไม่มีการติดตามสแต็ก

16. ImeActivationFailedException: ความคาดหวังนี้จะเกิดขึ้นเมื่อการเปิดใช้งานกลไกจัดการ IME ล้มเหลว

17. ImeNotAvailableException: มันเกิดขึ้นเมื่อไม่มีการสนับสนุน IME

18. ข้อยกเว้นใบรับรองที่ไม่ปลอดภัย: การนำทางทำให้ตัวแทนผู้ใช้เข้าถึงคำเตือนใบรับรอง สาเหตุนี้อาจเกิดจากใบรับรอง TLS ที่ไม่ถูกต้องหรือหมดอายุ

19. InvalidArgumentException: มันเกิดขึ้นเมื่ออาร์กิวเมนต์ไม่อยู่ในประเภทที่คาดไว้

20. ข้อยกเว้นคุกกี้โดเมนไม่ถูกต้อง: สิ่งนี้จะเกิดขึ้นเมื่อคุณพยายามเพิ่มคุกกี้ภายใต้โดเมนอื่นแทนที่จะเป็น URL ปัจจุบัน

21. InvalidCoordinatesException: ข้อยกเว้นประเภทนี้ตรงกับการดำเนินการโต้ตอบที่ไม่ถูกต้อง

22. InvalidElementStateException: มันเกิดขึ้นเมื่อคำสั่งไม่สามารถเสร็จสิ้นได้เมื่อองค์ประกอบไม่ถูกต้อง

23. IdException ไม่ถูกต้อง: ข้อยกเว้นนี้เกิดขึ้นเมื่อ ID เซสชันที่ระบุไม่รวมอยู่ในรายการเซสชันที่ใช้งานอยู่ หมายความว่าไม่มีเซสชันนี้หรือไม่ได้ใช้งานอยู่

24. SwitchTo ไม่ถูกต้องTargetยกเว้น: สิ่งนี้เกิดขึ้นเมื่อไม่มีเป้าหมายเฟรมหรือหน้าต่างที่จะสลับ

25. Javascriptยกเว้น: ปัญหานี้เกิดขึ้นขณะดำเนินการ Javaสคริปต์ที่กำหนดโดยผู้ใช้

26. ข้อยกเว้น Json: มันเกิดขึ้นเมื่อคุณสามารถรับเซสชันได้เมื่อไม่ได้สร้างเซสชัน

27. NoSuchAttributeException: ข้อยกเว้นประเภทนี้เกิดขึ้นเมื่อไม่พบแอตทริบิวต์ขององค์ประกอบ

28. ย้ายTargetข้อยกเว้นนอกขอบเขต: มันจะเกิดขึ้นหากเป้าหมายที่ระบุให้กับวิธีการย้าย ActionChains () ไม่ถูกต้อง เช่นออกจากเอกสาร

29. NoSuchContextException: ContextAware ทำการทดสอบอุปกรณ์มือถือ

30. NoSuchCookieException: ข้อยกเว้นนี้เกิดขึ้นเมื่อไม่พบคุกกี้ที่ตรงกับชื่อพาธที่กำหนดสำหรับคุกกี้ที่เกี่ยวข้องทั้งหมดของเอกสารที่เรียกดูอยู่ในปัจจุบัน

31. ไม่พบข้อยกเว้น: ข้อยกเว้นนี้เป็นคลาสย่อยของ WebDriverException สิ่งนี้จะเกิดขึ้นเมื่อไม่มีองค์ประกอบบน DOM

32. RemoteDriverServerException: Selenium ข้อยกเว้นเกิดขึ้นเมื่อเซิร์ฟเวอร์ไม่ตอบสนองเนื่องจากปัญหาที่ความสามารถที่อธิบายไว้ไม่เหมาะสม

33. ข้อยกเว้นภาพหน้าจอ: ไม่สามารถจับภาพหน้าจอได้

34. SessionNotCreatedException: มันเกิดขึ้นเมื่อไม่สามารถสร้างเซสชันใหม่ได้สำเร็จ

35. UnableToSetCookieException: สิ่งนี้จะเกิดขึ้นหากไดรเวอร์ไม่สามารถตั้งค่าคุกกี้ได้

36.TagNameException ที่ไม่คาดคิด: จะเกิดขึ้นหากคลาสสนับสนุนไม่ได้รับองค์ประกอบเว็บตามที่คาดไว้

37. UnhandledAlertException: ความคาดหวังนี้เกิดขึ้นเมื่อมีการแจ้งเตือน แต่ WebDriver ไม่สามารถดำเนินการแจ้งเตือนได้

38. ข้อยกเว้นการแจ้งเตือนที่ไม่คาดคิด: มันเกิดขึ้นเมื่อมีการแจ้งเตือนที่ไม่คาดคิดเกิดขึ้น

39. UnknownMethodException: ข้อยกเว้นนี้เกิดขึ้นเมื่อคำสั่งที่ร้องขอตรงกับ URL ที่รู้จัก แต่ไม่จับคู่กับวิธีการสำหรับ URL ที่ระบุ

40. ข้อยกเว้นเบราว์เซอร์ที่ไม่สามารถเข้าถึงได้: ข้อยกเว้นนี้เกิดขึ้นเฉพาะเมื่อเบราว์เซอร์ไม่สามารถเปิดหรือหยุดทำงานเนื่องจากสาเหตุบางประการเท่านั้น

41. UnsupportedCommandException: สิ่งนี้เกิดขึ้นเมื่อ WebDriver ระยะไกลไม่ส่งคำสั่งที่ถูกต้องตามที่คาดไว้

วิธีการจัดการข้อยกเว้นใน Selenium

ต่อไปนี้คือมาตรฐานสำคัญบางประการที่คุณสามารถจัดการข้อยกเว้นได้ Selenium เว็บไดร์เวอร์:

ขั้นตอนที่ 1) ลองจับ

วิธีนี้สามารถตรวจจับ Exceptions ซึ่งใช้การผสมผสานของคำสำคัญ try and catch คำสั่ง try ระบุจุดเริ่มต้นของบล็อกและ จับ ถูกวางไว้ที่ส่วนท้ายของบล็อก try ซึ่งช่วยในการแก้ไขข้อยกเว้น

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

ขั้นตอนที่ 2) บล็อก catch หลายอัน

มีข้อยกเว้นหลายประเภท และคุณสามารถคาดหวังได้มากกว่าหนึ่งข้อยกเว้นจากบล็อกโค้ดเดียว การจับหลายครั้งช่วยให้คุณจัดการข้อยกเว้นทุกประเภทแยกกันด้วยบล็อกโค้ดที่แยกจากกัน สามารถใช้กับบล็อก catch มากกว่าสองบล็อก และไม่มีข้อจำกัดเกี่ยวกับจำนวนบล็อก catch

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) ข้อยกเว้นหลายประการ

คุณสามารถกล่าวถึง Exceptions ต่างๆ ได้ในส่วนคำสั่ง Throws

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) ในที่สุด

คีย์เวิร์ด Final ใช้เพื่อสร้างบล็อกโค้ดภายใต้บล็อกลอง เป็นโค้ดสุดท้ายที่ช่วยให้คุณดำเนินการได้โดยไม่คำนึงถึงข้อยกเว้นที่เกิดขึ้น

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

วิธีการแสดงข้อยกเว้น

คุณยังสามารถใช้วิธีการต่อไปนี้เพื่อแสดงข้อมูลข้อยกเว้น:

  • printStackTrace (): ฟังก์ชันนี้พิมพ์การติดตามสแต็ก ชื่อของข้อยกเว้น และคำอธิบายที่เป็นประโยชน์อื่นๆ
  • toString (): ฟังก์ชันนี้ส่งคืนข้อความที่อธิบายชื่อข้อยกเว้นและคำอธิบาย
  • getMessage (): ช่วยในการแสดงคำอธิบายของข้อยกเว้น

สรุป

  • ข้อยกเว้นคือข้อผิดพลาดที่เกิดขึ้นในขณะที่รันโปรแกรม
  • Try-catch: วิธีนี้สามารถตรวจจับ Exceptions ซึ่งใช้การผสมผสานของคำสำคัญ try and catch
  • การจับหลายครั้งช่วยให้คุณจัดการข้อยกเว้นทุกประเภทแยกกันด้วยบล็อกโค้ดที่แยกจากกัน
  • คำหลัก Throw ใช้เพื่อ Throw Exception เพื่อจัดการในขณะรันไทม์
  • printStackTrace(): ฟังก์ชันนี้พิมพ์การติดตามสแต็ก ชื่อของข้อยกเว้น และคำอธิบายที่เป็นประโยชน์อื่นๆ
  • toString(): ฟังก์ชันนี้ส่งคืนข้อความที่อธิบายชื่อข้อยกเว้นและคำอธิบาย
  • getMessage(): ช่วยในการแสดงคำอธิบายของข้อยกเว้น