בעיות שקשורות לקליקים

השגיאה 'האלמנט אינו ניתן ללחיצה'

הלחיצה על ChromeDriver פועלת על ידי הדמיית קליק עכבר באמצע חלון הלקוח הראשון של הרכיב (או יישור יישור של הלקוח אם אין מלבן ראשון). הדרך הקלה ביותר לבדוק לאן ChromeDriver מנסה ללחוץ היא לפתוח את כלי הפיתוח של Chrome ולבדוק את הרכיב שעליו לוחצים מיד לפני שהפעלתם את פעולת הקליק. בוחרים את הרכיב בכלי לבדיקה ושמים לב לתיבות הכחולות שמייצגות את הבקשות של הלקוח לגבי הרכיב, כפי שניתן לראות בהמשך. ChromeDriver ינסה ללחוץ על מרכז ההודעה הראשונה.

אם ChromeDriver מציג את השגיאה 'הרכיב אינו קליקבילי', סביר להניח שהסיבה לכך היא שהמשתמש לא יכול ללחוץ על המיקום הזה. כדי לבדוק זאת, מציבים את הסמן במרכז של הלקוח הראשון ובודקים אם ניתן ללחוץ על המיקום.

במקרה שלמעלה, הבדיקה ניסתה ללחוץ על רכיב העוגן. במקרה כזה לא ניתן ללחוץ על העוגן, אלא רק על תמונת הצאצא. בגלל סגנון margin-bottom באלמנט התמונה, אמצע רכיב העוגן נופל מגבולות התמונה שניתן ללחוץ עליהם, ולכן ChromeDriver שולח הודעת שגיאה. למידע נוסף על אופן קביעת המיקום/גודל, עיינו במפרט של w3. כדי לתקן את המקרה שלמעלה, לוחצים על התמונה במקום על העוגן.

השגיאה 'הרכיב אינו קליקבילי' מתרחשת לעתים קרובות במצבים הבאים, כאשר בדיקה מנסה:

  • לוחצים על עוגן שרכיבי צאצא שלו שניתן ללחוץ עליהם נמצאים בגבולות העוגן (כמתואר למעלה)
  • ללחוץ על רכיב באופן מלא או חלקי מתחת לרכיב אחר
  • ללחוץ על רכיב מחוץ למסך כשמופיעה שכבת-על קבועה (הרכיב נגלל לתצוגה, אך ייתכן שהוא ייגלל מתחת לשכבת-העל הקבועה)
  • לוחצים על רכיב שאי אפשר ללחוץ עליו באמצע (למשל, סוגים מסוימים של רכיבי SVG קמורים)

לעיתים קרובות ניתן לפתור את הבעיות האלה על ידי לחיצה על צאצא של רכיב נתון, על ידי הסרה או הסתרה של רכיב החסימה באופן פרוגרמטי, באמצעות ממשק ה-API לאינטראקציות מתקדמות כדי ללחוץ על היסט בפינה הימנית העליונה של הרכיב, או על ידי הדמיית אירוע של לחיצה על העכבר ב-JavaScript.

השגיאה 'האלמנט אינו ניתן ללחיצה'

סביר להניח שמצב זה מתרחש מכיוון שמיקום הרכיב השתנה זמן מה אחרי ש-ChromeDriver קבע את מיקום הרכיב, ולפני ש-ChromeDriver מריץ קליק על המיקום.

כדי להבין אם זו הבעיה, צריך לזהות את החריגה מהקליק ולרשום מיד את המיקום הנוכחי ואת הגודל של הרכיב. צריך להשוות את הנתונים האלה למיקום שעליו ChromeDriver מדווח באופן חריג במקרה החריג, ולראות אם הם שונים. אם כן, עליכם להמתין עד שהרכיב יפסיק לזוז או לנסות ללחוץ שוב. אם לא, חשוב לדווח על באג בדף בדיקה קטן שיכול לשמש לשחזור הבעיה (גם אם הוא גורם לבעיה רק מדי פעם).

ChromeDrive לא יכול ללחוץ על רכיב שנמצא בתנועה

התכונה הזו לא נתמכת של ChromeDriver. אם הרכיב יופסק בסופו של דבר, חכו שזה יקרה. אם הרכיב לא מפסיק לזוז, ChromeDriver לא מבטיח שהקליק יתבצע בהצלחה.