אוטומציה בסלניום

see Sharp

New member
אוטומציה בסלניום

שלום לכולם. יש לי פרוייקט VS בסלניום שכתוב ב#C ובו אני צריך להגיע לאלמנטים שלא קשורים לדפדפן אלא לווינדוס. (לדוגמה לאחר לחיצה על כפתור "Browse" שפותחת לי חלון "Choose file to Upload " של windows.) איך ניתן ללכוד אלמנטים בחלון ווינדוס? אני יודע לעשות זאת בעזרת CodedUI אך הפרוייקט כאמור בסלניום.
 

עמית ו

New member
סלניום מטפל בדפדפנים בלבד.

וגם שם, רק במה שבפנים ולא במקה שקשור למערכת ההפעלה.
האם יש מניעה לשלב בין שני הדברים? בסופו של יום, סלניום הוא לא תשתית כוללת, הוא ספרייה שהקוד שלך משתמש בה. (אגב, אם אני מבין נכון, זה מה שנעשה בוידיאו הזה: https://www.youtube.com/watch?v=QeQ4Lg56LHU )
בזמנו, כשהיה לנו צורך לטפל בחלון שמירת קובץ, כתבתי סקריפט בAutoIt שהשתלב בתוך קוד ג'אווה - בדיוק כי סלניום לא מטפל בדברים כאלה.
 

עמית ו

New member
בהצלחה

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

see Sharp

New member
Coded UI

לצערי כפי שידוע לי לא ניתן לשלב בפרויקטCoded UI ,Selenim.
זה נכון שקריאה מסקריפט חיצוני מוציאה את השליטה מהאוטומציה אך היתרונות של סלניום עולים על החסרונות. אפשר להגיד גם אותו הדבר על שימוש בJavascriptExecutor שיוצא לי להשתמש בו לא מעט. בכל אופן סלניום הוא כלי נהדר.
 

see Sharp

New member
אז כנראה שאפשר..

אוקי אז לאחר בדיקה קצת יותר מעמיקה כנראה שניתן לצרף טסט של Coded UI לפרויקט. עכשיו נותר לבדוק איך זה עובד :)
 

עמית ו

New member
יותר הגיוני

קוד זה קוד.
אני סקרן לשמוע איך זה הולך.
ובהצלחה.
 

halperin

New member
מנהל
מסוג הבעיות שנובעות מכך שמתייחסים לסלניום כ- Framework ולא כ

מסוג הבעיות שנובעות מכך שמתייחסים לסלניום כ- Framework ולא כשירות לעבודה מול Web GUI,
עבודה קצת יותר מסודרת ניתן לעשות אם עובדים תחת Framework כלשהו (פנימי או חיצוני) וממנו קוראים לכל הכלים הנוספים שצריך.
 

halperin

New member
מנהל
בדיוק כפי שנכתב מעל - כתוצאה מכל ה"רעש" שיש סביב סלניום...

בדיוק כפי שנכתב מעל - כתוצאה מכל ה"רעש" שיש סביב סלניום, אנשים רצים מייד לממש בדיקות בסלניום מבלי לעצור תחילה ולהבין כי הוא סה"כ כלי להפעלת ה-GUI, וקריאת נתונים ממנו,
בכדי לנהל אוטומציה יעילה - צריך לבנות סביבו הרבה פעילויות גנריות של ניהול בדיקות, טיפול יעיל ב-לוגים (הירארכיים לצלילה נוחה לחקירה), שליטה בכלים נוספים לצורך בדיקות מובייל ודסקטופ, התחברות לכלי ניהול תוצאות, ועוד, ועוד - או במילים אחרות Framework.
ואז מצפים (כמו שבעבר ציפו מ-QTP) שיהיה פתרון כולל - אבל אם לא בנינו תשתית נכונה - אנו בטעות מצפים שסלניום יתפעל כלים אחרים וזו לא מטרתו ולא הפן היעיל שלו.
 

עמית ו

New member
אני חושד שבמקרה הזה הבעיה הפוכה.

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

halperin

New member
מנהל
מי ש"אשם" הוא מי שמגדיר אוטומציה בצורה חפפנית.

כל כלי נותן מה שהוא נותן - לא פחות ולא יותר -
מי שמגדיר את האוטומציה צריך להבין מה זה אומר בזמן הגדרת האסטרטגיה של מימוש אוטומציה בארגון.
הגדרה נכונה (כנראה ע"י מישהו מנוסה) תחסוך כתיבה חוזרת של דברים שאמורים להיות ברורים מראש.
 

clyon

New member
במקום ללכת לכלי צד שלישי

כמו AutoIT , אתה יכול להשתמש בספריה שמסמלצת לך פעולות של עכבר ומקלדת.
בעולם ה-Java יש לך את ה-Robt Class , בעולם ה-.NET יש לך את ה-Windows.Forms
 

clyon

New member
אתה לא תוכל (לא עם זה בכל אופן...)

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

clyon

New member
זה לא בעיה

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