מדריך | מציאת אלמנטים ב-Appium



לאחר שלמדנו איך כותבים תרחיש בדיקה בסיסי באמצעות Appium, עדיין נשארו שאלות פתוחות כמו, איך אני מוצא את האלמנטים? איך אני יודע מה שם ה Package וה Activity של האפליקציה שאני רוצה לבדוק?

בפוסט הבא נכיר את UIAutometorViewer ונעשה קצת סדר בדברים.

מומלץ מאוד לעבור לפני הקריאה על פוסט דומה שכתבתי בעבר על מציאת אלמנטים בSelenium.

דרישת קדם - תקשורת למכשיר האנדרואיד

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

זאת ניתן לוודא באמצעות כניסה ל CMD וכתיבת הפקודה - "adb devices".
(אם לא קיימת תקשורת למכשיר האנדרואיד שלך בצע את המדריך הבא)

מה זה UIAutomatorViewer?

UIAutomatorViewer היא אפליקציית GUI ל-Desktop שבאמצעותה ניתן לחקור אלמנטים ורכיבי UI באפליקציות אנדרואיד.

איפה אפשר למצוא את UIAutomatorViewer?

את UIAutomatorViwer ניתן למצוא בתיקיית ה AndroidSDK.

אם כבר ביצענו את המדריך הקודם פשוט נכנס לתיקייה
                                                                            %ANDROID_HOME%/tools

אחרת פשוט נכנס לנתיב: c:\users\<username>\AppData\Local\Android\sdk\tools

בתוך התיקייה נמצא קובץ בשם UIAutomtorViewer.bat -> נלחץ עליו פעמיים -> כעת נפתח לנו חלון חדש עם האפליקציה.

איך מוצאים אלמנטים באמצעות UIAutomatorViewer?

כעת כשקיימת תקשורת למכשיר נרצה לפתוח את האפליקציה אותה אנחנו רוצים לחקור.

בחלון ה UIAutomatorViewer נלחץ על הכפתור Device Screenshot (בצד שמאל למעלה)
כעת המסך המוצג לנו באפליקציה יוצג גם במחשב.



ניתן לראות גם שבאמצעות לחיצה על אלמנטים ספציפיים ניתן יהיה לראות את פרטים רבים אודות אותו אלמנט (node detail).

לחיצה על הכפתור '2' יציג בפנינו את ה node detail הבא



כעת ניתן לפנות לאלמנטים שמצאנו באמצעות UIAutomatorViewer ולבצע עליהם פעולות בתרחיש הבדיקה.

לצורך הדוגמה והתחלת העבודה אציג שתי אפשרויות למציאת אלמנטים.

מציאת אלמנט באמצעות id

ניתן לראות שתחת הקטגוריה 'resource-id' לאחר ה '/' מופיע המזהה - "bt_02". זהו ה - id של האלמנט.

והשימוש יראה כך:
var element = driver.FindElementById("bt_02");

מציאת אלמנט באמצעות xpath

יש מספר דרכים למצוא אלמנטים באמצעות xpath בדוגמה אציג מקרה בו אנחנו בוחרים אלמנט לפי class name ו- text.
על מנת שמציאת האלמט תתבצע בהצלחה עלינו לוודא שב-class בשם "andorid.widget.Button" קיים אך ורק אלמנט אלמנט אחד עם text שמכיל "2".

והשימוש יראה כך:
var element = driver.FindElementByXPath("//android.widget.Button[@text='2']");

על מנת לראות עוד סוגים ודרכים למציאת אלמנטים באמצעות xpath ניתן להכנס למדריך הבא

סיכום

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

נתראה בפוסט הבא :)


תגובות

פוסטים פופולריים מהבלוג הזה

תכנות מונחה עצמים | Dependency Inversion Principle

מהם קבצי DLL ואיך להשתמש בהם?

מה ההבדל בין אוטומציה לפיתוח רגיל