การจัดการข้อยกเว้นใน 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(): ช่วยในการแสดงคำอธิบายของข้อยกเว้น