בפוסט זה אציג כמה טיפים וטריקים המטפלים בחיפוש וזיהוי של אלמנטים לא טריוויאלים. שיטות לחיפוש שעד כה לא הצגנו.
חיפוש מילה בעמוד:
לא קיימת מתודה בסלנים של – verifyTextPresent , לכן אם נרצה לבצע זאת, נצטרך להשתמש ב-getPageSource , כך:
public boolean verifyTextPresent(String text) { return driver.getPageSource().contains(text); }
או כך:
public boolean verifyTextPresent(String text) { return driver.findElement(By.tagName("body")).getText().contains(text); }
public boolean isObjExists(WebDriver driver, By locator) { try { WebDriverWait wait = new WebDriverWait(driver,Max_TimeOut); // wait הגדרת אובייקט wait.until(ExpectedConditions.elementToBeClickable(locator)); return true; // true אם מצא את האובייקט תחזיר } catch(NoSuchElementException exception) { return false; // תחזיר תשובה שלילית exception אם הגיע ל } }
מציאת הקואורדינטות של אלמנט מסויים על המסך , נעשה שימוש בדוגמא של צילום מסך חלקי בשיעור 15
public void getCoordinates() throws Exception { WebElement Image = driver.findElement(By.id("myID")); Point point = Image.getLocation(); // point למציאת הקואורדינטות נעזר במחלקת int xcord = point.getX(); System.out.println("Element's Position from left side Is "+xcord +" pixels."); int ycord = point.getY(); System.out.println("Element's Position from top side Is "+ycord +" pixels."); }
והפלט יהיה משהו בסגנון הזה:
Element's Position from left side Is 135 pixels. Element's Position from top side Is 409 pixels.
מציאת המימדים של אלמנט מסויים על המסך (לרוב תמונה) , נעשה שימוש בדוגמא של צילום מסך חלקי בשיעור 15
public void getSize() throws Exception { WebElement Image = driver.findElement(By.id("myID")); int ImageWidth = Image.getSize().getWidth(); // מציאת מימד הרוחב של האלמנט System.out.println("Image width Is "+ImageWidth+" pixels"); int ImageHeight = Image.getSize().getHeight(); // מציאת מימד האורך של האלמנט System.out.println("Image height Is "+ImageHeight+" pixels"); }
והפלט יהיה משהו בסגנון הזה:
Image width Is 450 pixels Image height Is 155 pixels.
מציאת אלמנטים לפי המיקום שלהם זה תהליך לא כל כך מסובך, אך לעיתים אנו נצטרך למצוא את האלמנטים לפי אלמנט אחר שממוקם בצמוד אליהם (אח). בואו קודם נביט בטבלה:
המשחק כאן הוא למעשה משחק ב-XPath כך שבעזרתו נגדיר את האלמנט על פי זיהוי האחים.
זיהוי לפי אח שבא לפני האלמנט הרצוי (במקרה שלנו checkbox):
//td[contains(text(),'Green')]/following-sibling::td/input[@type='checkbox']
אנו רואים כי //td[contains(text(),'Green')] יזהה את התא בו רשום dog , ואח"כ /following-sibling יזהה לפי האח שלאחר ה-node הנוכחי ולבסוף: td/input[@type='checkbox'] יזהה את האלמנט הרצוי (ה-checkbox).
זיהוי לפי אח שבא אחרי האלמנט הרצוי (במקרה שלנו checkbox):
//td[contains(text(),'Yellow')]/preceding-sibling::td/input[@type='checkbox']