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

 

Radio Button:

הפקד הראשון ואולי הפשוט ביותר הוא כפתור הרדיו, כפי שניתן לראות בדוגמא כאן:

כאשר הקוד שלו נראה כך:

<form action="radiobutton">
   <input type="radio" name="color" id="red" value="red">Red
   <input type="radio" name="color" id="yellow" value="yellow">Yellow
   <input type="radio" name="color" id="green" value="green">Green
   <input type="radio" name="color" id="blue" value="blue">Blue
   <input type="radio" name="color" id="pink" value="pink">Pink
</form>

כך שהמתודה שנפעיל כאן תהיה מתודת Click פשוטה (בחירת הצבע הירוק):

WebDriver driver =new FirefoxDriver();
driver.findElement(By.id("green"])).click();

 

ניתן  לוודא כמובן לפני כן שה-radio button לא נבחר בשלב מוקדם יותר עם הפעלת המתודה: IsSelect (שמחזירה ערך בוליאני – True/False) :

boolean bValue = driver.findElement(By.id("green")).isSelected();   // האם הכפתור הירוק נבחר כבר
if (bValue = false)                                                 // במידה ולא
{
    driver.findElement(By.id("green")).click();                     // תבחר אותו
}

 

ניתן כמובן גם לשלוף את הערך שלו (האם הוא נבחר כבר או לא):

driver.findElement(By.id("green")).getAttribute("value");

 


 

Check Box:

אופן הפעולה על CheckBox זהה לחלוטין כמו אופן הפעולות שביצענו על Radio Button. כאשר ההבדל ביניהם מבחינת הפונקציונליות הוא עניין הבחירה המרובה (ב-Checkbox כן , ב-Radio Button לא).


כאשר הקוד שלו נראה כך:

<form action="radiobutton">
   <input type="checkbox" name="color" id="red" value="red">Red
   <input type="checkbox" name="color" id="yellow" value="yellow">Yellow
   <input type="checkbox" name="color" id="green" value="green">Green
   <input type="checkbox" name="color" id="blue" value="blue">Blue
   <input type="checkbox" name="color" id="pink" value="pink">Pink
</form>

 

והפעולה שאנחנו נפעיל תהיה זהה לפעולה שהפעלנו על ה-Radio Button:

boolean bValue = driver.findElement(By.id("green")).isSelected();   // האם האוציה הירוקה נבחרה כבר
if (bValue = false)                                                 // במידה ולא
{
    driver.findElement(By.id("green")).click();                     // נבחר אותה
}

 


 

TextBox / Text Area:

השימושים העיקרי עם שדה הטקסט הוא הכנסת טקסט לשדה וניקוי השדה, לשם כך יצרו 2 מתודות. נראה בדוגמאות:

כאשר הקוד שלו נראה כך:

Color Name <textarea id="myTextAreaID" cols="40" name="myName" rows="1"></textarea>

הכנסת טקסט לשדה תתבצע בעזרת מתודת SendKeys:

WebDriver driver = new FirefoxDriver();
driver.findElement(By.id("myTestAreaID")).sendKeys("Green");

 

ניקוי השדה יתבצע בעזרת מתודת Clear:

WebDriver driver = new FirefoxDriver();
driver.findElement(By.id("myTestAreaID")).clear();

 


 

 

ComboBox / DropDown List:

השימוש בפקד ה-ComboBox הוא אחד השימושים הנפוצים ביותר ב-Form-ים השונים, בעבר פקד זה היה פופלרי יותר, ונראה שככל שעובר הזמן השימוש בו יורד, אך עדיין ישנן המון מערכות אשר עובדות עם פקד זה, בואו נראה כיצד נוכל לבחור שדה מסויים מתוך הרשימה. נתחיל כרגיל עם דוגמא:

כאשר הקוד שלו נראה כך:


מתודת: selectByVisibleText  , תיתן לנו את האופציה לבחור שדה מסויים לפי השם שלו:

Select mySelection = new Select(driver.findElement(By.id("myComboBox")));
 
mySelection.selectByVisibleText();

 

מתודת: selectByIndex , תיתן לנו את האופציה לבחור שדה מסויים לפי האינדקס שלו:

Select mySelection = new Select(driver.findElement(By.id("myComboBox")));

mySelection.selectByIndex(Index Number); // אם ניתן את הערך 3 , הוא יבחר את הצבע הירוק

 

מתודת: selectByValue , תיתן לנו את האופציה לבחור שדה מסויים לפי הערך שלו:

Select mySelection = new Select(driver.findElement(By.id("myComboBox")));

mySelection.selectByValue(value);

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

 

ניתן כמובן גם לדעת את גודל הרשימה שלנו (מספר האלמנטים המופיעים ב-ComboBOx) , בעזרת מתודת size:

Select mySelection = new Select(driver.findElement(By.id("myComboBox")));
List Combo = mySelection.getOptions();
int iListSize = Combo.size();

 

וכשיש לנו את הערך הזה, נוכל לרוץ על כל האלמנטים ב-ComboBox ולהדפיס אותם , כך למשל:

Select mySelection = new Select(driver.findElement(By.id("myComboBox")));
List Combo = mySelection.getOptions();
int iListSize = Combo.size();
for (int i = 0; i < iListSize ; i++)
{
    String sValue = mySelection.getOptions().get(i).getText();
    System.out.println(sValue);
}

 

 


arrowBackarrowMainarrowFor

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