FindElements σε Selenium – FindElement από το XPath

Γιατί χρειάζεστε την εντολή Find Element(s);

Η αλληλεπίδραση με μια ιστοσελίδα απαιτεί από τον χρήστη να εντοπίσει το στοιχείο Ιστού. Η εντολή Find Element χρησιμοποιείται για τον μοναδικό προσδιορισμό ενός (ένα) στοιχείου web μέσα στην ιστοσελίδα. Ενώ, η εντολή Find Elements χρησιμοποιείται για τον μοναδικό προσδιορισμό της λίστας των στοιχείων ιστού εντός της ιστοσελίδας. Υπάρχουν πολλοί τρόποι για να προσδιορίσετε μοναδικά ένα στοιχείο ιστού εντός της ιστοσελίδας, όπως ID, Όνομα, Όνομα τάξης, Κείμενο συνδέσμου, Μερικό κείμενο συνδέσμου, Όνομα ετικέτας και XPATH.

Σύνταξη εντολής FindElement

WebElement elementName = driver.findElement(By.LocatorStrategy("LocatorValue"));

Selenium Η εντολή Find Element λαμβάνει το αντικείμενο By ως παράμετρο και επιστρέφει ένα αντικείμενο της λίστας τύπων WebElement in Selenium. Κατά αντικείμενο με τη σειρά του μπορεί να χρησιμοποιηθεί με διάφορες στρατηγικές εντοπισμού, όπως εύρεση στοιχείου με αναγνωριστικό Selenium, Όνομα, Όνομα κλάσης, XPATH κ.λπ. Παρακάτω είναι η σύνταξη της εντολής FindElement στο Selenium πρόγραμμα οδήγησης web.

Η στρατηγική εντοπισμού μπορεί να είναι οποιοδήποτε από τα παρακάτωwing αξιών.

  • ID
  • Selenium βρείτε στοιχείο με όνομα
  • Ονομα τάξης
  • Όνομα ετικέτας
  • Κείμενο συνδέσμου
  • Μερικό κείμενο συνδέσμου
  • XPATH

Η τιμή εντοπισμού είναι η μοναδική τιμή με την οποία μπορεί να αναγνωριστεί ένα στοιχείο ιστού. Είναι ευθύνη των προγραμματιστών και των ελεγκτών να βεβαιωθούν ότι τα στοιχεία ιστού είναι μοναδικά αναγνωρίσιμα χρησιμοποιώντας ορισμένες ιδιότητες, όπως το αναγνωριστικό ή το όνομα.

Παράδειγμα:

WebElement loginLink = driver.findElement(By.linkText("Login"));

Παράδειγμα: Βρείτε το στοιχείο στο Selenium

Το Following Η εφαρμογή χρησιμοποιείται για επίδειξη

http://demo.guru99.com/test/ajax.html

Σενάριο:

Βήμα 1: Ανοίξτε το AUT

Βήμα 2: Βρείτε και κάντε κλικ στο κουμπί επιλογής

package com.sample.stepdefinitions;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class NameDemo {

public static void main(String[] args) {
// TODO Auto-generated method stub

System.setProperty("webdriver.chrome.driver", "D:\\3rdparty\\chrome\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.manage().window().maximize();

driver.get("http://demo.guru99.com/test/ajax.html");

// Find the radio button for “No” using its ID and click on it
driver.findElement(By.id("no")).click();
	
//Click on Check Button
driver.findElement(By.id("buttoncheck")).click();

}

}

Σύνταξη εντολής FindElements

List<WebElement> elementName = driver.findElements(By.LocatorStrategy("LocatorValue"));

FindElements σε Selenium Η εντολή λαμβάνει το By object ως παράμετρο και επιστρέφει μια λίστα στοιχείων web. Επιστρέφει μια κενή λίστα εάν δεν βρέθηκαν στοιχεία χρησιμοποιώντας τη δεδομένη στρατηγική εντοπισμού και την τιμή εντοπισμού. Παρακάτω είναι η σύνταξη της εντολής Εύρεση στοιχείων.

Παράδειγμα:

List<WebElement> listOfElements = driver.findElements(By.xpath("//div"));

Παράδειγμα: Βρείτε στοιχεία στο Selenium

Σενάριο:

Βήμα 1: Ανοίξτε τη διεύθυνση URL για την εφαρμογή υπό δοκιμή

Βήμα 1: Βρείτε το κείμενο των κουμπιών επιλογής και εκτυπώστε το στην κονσόλα εξόδου

package com.sample.stepdefinitions;

import java.util.List;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;

public class NameDemo {

public static void main(String[] args) {

    System.setProperty("webdriver.chrome.driver", "X://chromedriver.exe");
    WebDriver driver = new ChromeDriver();
    driver.get("http://demo.guru99.com/test/ajax.html");
    List<WebElement> elements = driver.findElements(By.name("name"));
    System.out.println("Number of elements:" +elements.size());

    for (int i=0; i<elements.size();i++){
      System.out.println("Radio button text:" + elements.get(i).getAttribute("value"));
    }
  }
}

Εύρεση στοιχείων Vs Εύρεση στοιχείων

Παρακάτω είναι οι κύριες διαφορές μεταξύ των εντολών εύρεσης στοιχείου και εύρεσης στοιχείων.

Find Element Vs Find Elements
Εύρεση στοιχείου Vs Εύρεση στοιχείων σε Selenium
Εύρεση στοιχείου Εύρεση στοιχείων
Επιστρέφει το πρώτο περισσότερο στοιχείο ιστού εάν υπάρχουν πολλά στοιχεία ιστού που βρέθηκαν με τον ίδιο εντοπιστή Επιστρέφει μια λίστα στοιχείων ιστού
Πραγματοποιεί εξαίρεση NoSuchElementException εάν δεν υπάρχουν στοιχεία που να ταιριάζουν με τη στρατηγική εντοπισμού Επιστρέφει μια κενή λίστα εάν δεν υπάρχουν στοιχεία ιστού που να ταιριάζουν με τη στρατηγική εντοπισμού
Εύρεση στοιχείου από το XPath θα βρει μόνο ένα στοιχείο ιστού Θα βρει μια συλλογή στοιχείων που ταιριάζουν με τη στρατηγική εντοπισμού.
Δεν εφαρμόζεται Κάθε στοιχείο Ιστού είναι ευρετηριασμένο με έναν αριθμό που ξεκινά από το 0 ακριβώς όπως ένας πίνακας

Χαρακτηριστικά

  • Η εντολή Find Element επιστρέφει το στοιχείο web που ταιριάζει με το πρώτο περισσότερο στοιχείο εντός της ιστοσελίδας.
  • Η εντολή Find Elements επιστρέφει μια λίστα στοιχείων ιστού που ταιριάζουν με τα κριτήρια.
  • Βρείτε το στοιχείο από το XPath στο Selenium Η εντολή ρίχνει το NoSuchElementException εάν δεν βρει το στοιχείο που ταιριάζει με τα κριτήρια.
  • Η εντολή Find Elements επιστρέφει μια κενή λίστα Selenium εάν δεν υπάρχουν στοιχεία που να ταιριάζουν με τα κριτήρια