הפעם אנחנו הולכים לדבר על Exception בסלניום. ולא סתם Exception אלא אחד כזה שהוא קשה לתפיסה הבנתית. אנחנו מדברים על – Stale Element Reference Exception.

המשמעות של המילה Stale היא – רקוב או פג תוקף , בדיוק כמו במקרה המדובר כאן בבדיקות שלנו. האלמנט אותו אנחנו רוצים לתפוס כבר לא בתוקף.

מה זאת אומרת לא בתוקף ? זה אומר שאחד משני המקרים התבצעו:

1. האלמנט נמחק מה-DOM

2. האלמנט אינו מקושר יותר ל-DOM

קורסים דיגיטליים בעתיד האוטומציה

 

 

זה הרי ידוע שניתן בעזרת פקודות JavaScript בסיסיות להעלים \ לשנות \ למחוק אלמנטים מה-DOM , אז בואו ניקח מקרה לדוגמא בו תפסנו אלמנט בהתחלה ע"י :

WebElement test = driver.findElement(By.id("test"));

 

אח"כ ביצענו כל מיני פעולות על הדף כחלק מהבדיקה שלנו, ואחת מהן גרמה (ע"י פונקציה ב-JS כאמור) למחוק את האלמנט מה-DOM , או לחילופין – במסגרת הבדיקה היינו צריכים לנווט לעמוד אחר באפליקציה. אח"כ קראנו שוב פעם לאלמנט , תוך הפעלת פעולה מסויימת עליו:

test.click();

 

במקרה כזה, האובייקט שלנו: test מסוג WebElement – אותו איתחלנו בתחילת הבדיקה , כעת לא בתוקף (כי הוא למשל נמחק מהדף) , וכשאנו מפעילים עליו את הפעולה click , התוכנית תנסה לחפש אותו ותזרוק לנו את ה-Stale Element Reference Exception.

בדרך כלל, זהו לא Exception תדיר, אך שימו לב כי אם אתם עובדים על דפים עשירים בקוד JS או JQuery – התופעה יכולה לקרות

 

 

לקריאה נוספת אודות Stale Element Reference Exception:

http://www.seleniumhq.org/exceptions/stale_element_reference.jsp

 

השאר הערה\הודעה