
switchTo(), ואיך ממשיכים את הבדיקה אחריה.onclick של הכפתור קוראת לפונקציה שמקפיצה alert, מדובר בהתראת JavaScript.driver.switchTo().alert().accept() כדי לאשר, או ל-dismiss() כדי לבטל. אחרי זה הטסט ממשיך לעבוד עם הדף.driver.switchTo().defaultContent(). הפקודה לא תזיק, אבל היא גם לא הכרחית.הטקסט המלא של הדקות הראשונות בהרצאה «Switch to JS Alert» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם, בסרטון הקודם דיברנו על פקודת דרייבר נקודה סוויץ' 2 בטיפול ב-iFrames. בסרטון הקרוב נמשיך לטפל בנושא על ידי הדרייבר נקודה סוויץ' 2, אבל במקרה של הודעת אלרט, הודעת שגיאה או הודעת מסך שיש באתר שאנחנו בודקים ואנחנו רוצים להתמודד איתה.
תכף אני אסביר בדיוק למה אני מתכוון כשאני אומר טיפול באלרטים. אז כאמור השיעור הקרוב יטפל באיך הסלניום מסייע לנו להתמודד עם JavaScript Popup בעזרת ה-Switch 2.
אז מה זה JavaScript Alert? JavaScript Alert זה איזשהו חלון קופץ שמזנק אלינו או נוצר בעקבות איזושהי פעולה שביצענו במסך לדוגמה, לחיצה על כפתור של delete תזניק לנו איזשהו JavaScript Alert ששואל האם אנחנו בטוחים שאנחנו רוצים לבצע את פעולת הדיליט הספציפית הזאת בדף.
דוגמה נוספת זה איזושהי שגיאה בהקלדה שלנו, באיזשהו פורום, איזשהו שדה שהכנסנו, הכנסנו איזה תו לא חוקי או ערך לא חוקי, ומי שכתב את האתר שאנחנו בודקים שתל פעולת JavaScript שתקפיץ הודעה שאנחנו נהיה חייבים להתייחס אליה.
המיוחד ב-JavaScript Alert הוא שאנחנו לא יכולים להתעלם ממנה, אנחנו לא יכולים לעבור ולהמשיך לעבוד ברגע שהיא קפצה, יש פופ-אפים או הודעות אחרות שכן אפשר להמשיך לעבוד איתם, אבל JavaScript Alert מכריחה אותנו להתמודד איתה, לכתוב, להקליד Accept או ללחוץ על כפתור Accept או Decline או איזושהי פעולה אחרת בכפתור של אותו Alert,
תכף נראה דוגמה, על מנת להמשיך את סקריפט הבדיקה שלנו. אז לפעמים אנחנו נרצה לעשות בדיקה שתקפץ לנו דעה כזאת ואז אנחנו נצטרך להתמודד איתה, זו הודעה מסוג מודל מה שנקרא, זו הודעה שחוסמת את המשך העבודה בדף האינטרנט ברקע שדרכו הגענו לאותה הודעת שגיאה, לאותו פופ-אפ ג'אווה סקריפטי.
למה באתרים מסוימים שותנים את האלרטים האלה? כאמור כדי להכריח את המשתמש להגיד אתה הולך למכור קובץ דרך האתר, ואתה רוצה בעצם להזהיר אותך ולוודא שאתה מודע להשלכות של הפעולה, הכללת ערך לא חוקי בשדה, ואתה רוצה לוודא שאתה יודע שאתה צריך לתקן את הערך הזה.
למה זו בעיה? בסלניום, ברגע שקופצת JavaScript Alert, הסלניום נחסם, הוא לא מצליח להמשיך ולתקשר עם אותו דף שממנו קופצה ההודעה.
אנחנו חייבים להתמודד איתו בעזרת פקודת Driver Switch To Alert. תכף נראה דוגמא ולשחרר את הודעת השגיאה ולהמשיך לעבוד בדף המרכזי שלנו אז בואו נראה איך אנחנו מתמודדים עם זה לפני שאנחנו מתחילים להתמודד עם האלרט אנחנו צריכים להיות בטוחים שזה באמת אלרט מסוג javascript לפני שאנחנו עושים כל דבר אנחנו צריכים להיות בטוחים שמדובר פה בjavascript יש פה שגיאה זה לא
iframes זה javascript אנחנו רואים פה את הסינטקס html button on click תכף נראה דוגמה באתר אמיתי וזה בעצם הדוגמה שלנו שאנחנו מתעסקים באלרט תכף אנחנו נציג דוגמה אז בואו ניגש לקליפס שלנו ל-id ונראה איך אנחנו מתמודדים עם הודעה קופצת מסוג javascript אז יצרתי לעצמי קלאס קראתי לו alert 02 יש לי פה התחום של הדרייבר מסוג חום חום ווב דרייבר היא תחוש של
משתנה מערכת ואת החום דרייבר, פעולת מנאג' על מנת לבצע מקסימייז לחלון של החום שאנחנו רוצים איתו וטיימאוט הגדרת טיימאוט שזה סינכרוניזציה כללית לכל האלמנטים שיזוהו בתוך הדרייבר שלנו.
כאן יש לי את פקודת הגט באתר הזה, זה אתר תרגול, אני אבצע לחיצה על כפתור ואקפיץ JavaScript על מנת להדגים את הטיפול בפופאפ. בואו נראה בואו נריץ את זה אני מריץ את הטסט שלי את הג'אבה קוד שלי ונפתח לי חלון בראוזר מבוצע מקסימייז אני מגיע לחלון תרגול של האלרט ויש לי כאן את הכפתור הזה ואם אני לוחץ עליו צס לי את ההודעה הזאתי זה האלרט מסוג
ג'אבאסקריט אבל איך נהיה בטוחים שזה באמת פופ-אפ מסוג ג'אבאסקריט מה שנעשה נפתח את הנספק טול בכרום more tools developer tools, נמקם אותו בצורה שתהיה נוחה, אופקית ונעשה inspect לאותו כפתור שהקפיץ לנו את ההודעה.
אם אני לוחץ על ה-simple alert, על הכפתור הזה, אני רואה פה את ה-tag מסוג button וכאן אני רואה את המתודה push alert שה-button הזה מקפיץ בפעולת on-click. אנחנו לא נלמד היום JavaScript ולכן אני רק מציג את זה על מנת שנראה שיש לנו סקריפט מסוג ג'אווה סקריפט על ידי הזיהוי הזה שאנחנו רואים שהוא מבצע פונקציה של ג'אווה סקריפט מאחורי הכפתור onclick
הוא מפעיל את הפאנשן פוש אלרט ובעצם פוש אלרט הזה נותן את הפופאפ הזה שאנחנו ראינו קודם בואו נלחץ עליו שוב ידנית ואנחנו רואים את ההודעה הזאתי אוקיי אז ברגע שאנחנו לוחצים על הפופאפ הזה אנחנו רואים שאין לנו שום דרך להתמודד עם כל מה שקורה ברקע.
בעצם הפופ-אפ הזה חוסם לנו את הגישה להמשיך ולהריץ את הטסט שלנו. אנחנו חייבים לבצע שחרור לאותו אלרט. איך נבצע את זה? אז קודם כל בואו נלחץ על הכפתור דרך הסלניום סקריפט שלנו, הג'אווה, בואו נראה.
אז הסימפל אלרט, איך אני מזהה אותו? אני מזהה אותו בעזרת אקספאט, קופי, אקספאט ואני אחזור לסנדווים שלי כאן אני אבצע דרייבר פיין אלמנט ביי אקספאט זה כדי ללחוץ על הכפתור