Descoperă Cum Să Găsești și Să Interacționezi cu Elementele Web în Selenium!

Selenium este un cadru popular pentru automatizarea interacțiunilor cu browser-ul web. Permite scrierea de cod care poate efectua acțiuni precum clic, tastare, navigare și verificare a elementelor web pe o pagină web. În acest tutorial, vei învăța cum să folosești două metode importante ale clasei WebDriver din Selenium: findElement și findElements. Aceste metode îți permit să localizezi și să interacționezi cu elementele web folosind diferite tipuri de selectori, cum ar fi ID-ul, numele, clasa, CSS-ul și XPath.


Precondiții

Pentru a începe acest tutorial, vei avea nevoie de următoarele:

  • Un mediu de dezvoltare Java, cum ar fi Eclipse sau IntelliJ IDEA
  • Un proiect Java cu dependențele Selenium WebDriver și TestNG
  • Un browser web, cum ar fi Chrome sau Firefox
  • Un executabil pentru driver-ul web, cum ar fi chromedriver sau geckodriver, care să se potrivească versiunii browser-ului tău
  • O pagină web de testat, cum ar fi https://the-internet.herokuapp.com/

Ce sunt metodele findElement și findElements?

Metodele findElement și findElements sunt folosite pentru a localiza elementele web pe o pagină web. Un element web este orice element HTML cu care se poate interacționa, cum ar fi un buton, un link, un câmp de text, o casetă de bifare etc. Metoda findElement returnează un singur obiect WebElement care se potrivește selectorului specificat. Metoda findElements returnează o listă de obiecte WebElement care se potrivesc selectorului specificat. Dacă nu se găsește niciun element, metoda findElement aruncă o NoSuchElementException, în timp ce metoda findElements returnează o listă goală.


Cum să configurezi un LAMP Stack pe Ubuntu 20.04: Ghid complet pentru începători!
Configurare Server Apache pe VPS UbuntuDebian: Ghid Detaliat
Cum să Instalezi Apache Kafka pe Ubuntu 20.04: Ghid Pas cu Pas!
Descoperă Cum Instalezi un Stack LAMP pe Debian 10: Ghid Detaliat Pas cu Pas!
Pași esențiali pentru configurarea unui LAMP stack pe Debian 10 Ghid detaliat!

Cum să folosești metodele findElement și findElements?

Pentru a folosi metodele findElement și findElements, trebuie să creezi o instanță a clasei WebDriver și să treci calea executabilului pentru driver-ul web ca proprietate de sistem. De exemplu, pentru a crea o instanță ChromeDriver, poți folosi următorul cod:

java
System.setProperty("webdriver.chrome.driver", "C:\\Users\\utilizator\\Descărcări\\chromedriver.exe");
WebDriver driver = new ChromeDriver();

Apoi, trebuie să navighezi pe pagina web pe care vrei să o testezi folosind metoda get. De exemplu, pentru a naviga pe pagina web de exemplu, poți folosi următorul cod:

java
driver.get("https://the-internet.herokuapp.com/");

Următorul pas constă în specificarea selectorului pe care vrei să-l folosești pentru a localiza elementul web. Selenium suportă diverse tipuri de selectori, cum ar fi:

1. By.id: Acest selector localizează elementul web după atributul său ID. De exemplu, pentru a localiza elementul cu ID-ul „username”, poți folosi următorul cod:

java
WebElement username = driver.findElement(By.id("username"));

2. By.name: Acest selector localizează elementul web după atributul său de nume. De exemplu, pentru a localiza elementul cu numele „q”, poți folosi următorul cod:

java
WebElement searchBox = driver.findElement(By.name("q"));

3. By.className: Acest selector localizează elementul web după atributul său de clasă. De exemplu, pentru a localiza elementul cu clasa „button”, poți folosi următorul cod:

java
WebElement button = driver.findElement(By.className("button"));

4. By.cssSelector: Acest selector localizează elementul web după selectorul său CSS. De exemplu, pentru a localiza elementul cu ID-ul „username” și clasa „input”, poți folosi următorul cod:

java
WebElement username = driver.findElement(By.cssSelector("#username.input"));

5. By.xpath: Acest selector localizează elementul web după expresia sa XPath. De exemplu, pentru a localiza elementul cu ID-ul „username” și clasa „input”, poți folosi următorul cod:

java
WebElement username = driver.findElement(By.xpath("//*[@id='username' and @class='input']"));

Poți folosi metoda findElements cu aceiași selectori pentru a localiza mai multe elemente web. De exemplu, pentru a localiza toate linkurile de pe pagina web, poți folosi următorul cod:

java
List<WebElement> links = driver.findElements(By.tagName("a"));

Odată ce ai localizat elementul web, poți efectua diverse acțiuni asupra acestuia, cum ar fi:

  • click: Această metodă face clic pe elementul web. De exemplu, pentru a face clic pe linkul cu textul „Form Authentication”, poți folosi următorul cod:

java
WebElement link = driver.findElement(By.linkText("Form Authentication"));
link.click();

  • sendKeys: Această metodă tastează textul dat pe elementul web. De exemplu, pentru a tasta „tomsmith” în câmpul de utilizator, poți folosi următorul cod:

java
WebElement username = driver.findElement(By.id("username"));
username.sendKeys("tomsmith");

  • clear: Această metodă șterge textul din elementul web. De exemplu, pentru a șterge câmpul de utilizator, poți folosi următorul cod:

java
WebElement username = driver.findElement(By.id("username"));
username.clear();

  • getText: Această metodă returnează textul elementului web. De exemplu, pentru a obține textul antetului, poți folosi următorul cod:

java
WebElement header = driver.findElement(By.tagName("h1"));
String text = header.getText();

  • getAttribute: Această metodă returnează valoarea atributului specificat al elementului web. De exemplu, pentru a obține valoarea atributului de clasă al câmpului de utilizator, poți folosi urmă

„`bash

Elemente cheie (Key takeaways)

::: blockquote
În acest tutorial, ați învățat cum să utilizați metodele findElement și findElements din clasa Selenium WebDriver pentru a localiza și a interacționa cu elemente web folosind diferite tipuri de selectori. Ați învățat, de asemenea, cum să efectuați diverse acțiuni pe elementele web, cum ar fi clic, tastare, golire, obținere text, obținere atribut și verificare stare. Puteți utiliza aceste metode pentru a automatiza diverse interacțiuni ale browserului web și pentru a testa aplicațiile web.
:::

Întrebări frecvente (FAQs)

::: border

1. Care este diferența dintre findElement și findElements?

  • findElement returnează un singur element web care corespunde selectorului specificat.
  • findElements returnează o listă de obiecte WebElement care corespund selectorului specificat.

2. Ce se întâmplă dacă nu se găsește niciun element?

  • Metoda findElement aruncă o excepție NoSuchElementException.
  • Metoda findElements returnează o listă goală.

3. Ce tipuri de selectori pot folosi cu findElement și findElements?

Selenium acceptă diferiți tipuri de selectori, cum ar fi:

  • By.id: Localizează elementul web după atributul său ID.
  • By.name: Localizează elementul web după atributul său name.
  • By.className: Localizează elementul web după atributul său class.
  • By.cssSelector: Localizează elementul web după selectorul său CSS.
  • By.xpath: Localizează elementul web după expresia sa XPath.

4. Cum pot efectua acțiuni pe elementele web?

Odată ce ați localizat elementul web, puteți efectua diverse acțiuni pe acesta, cum ar fi:

  • click: Face clic pe elementul web.
  • sendKeys: Tastează textul dat pe elementul web.
  • clear: Șterge textul de pe elementul web.
  • getText: Returnează textul elementului web.
  • getAttribute: Returnează valoarea atributului specificat al elementului web.
  • isDisplayed: Returnează true dacă elementul web este vizibil, false altfel.
  • isEnabled: Returnează true dacă elementul web este activat, false altfel.
  • isSelected: Returnează true dacă elementul web este selectat, false altfel.

5. Unde pot găsi mai multe informații despre Selenium?

Puteți găsi mai multe informații despre Selenium pe site-ul oficial Selenium Documentation.
:::