Quantcast
Channel: blog.testowka.pl » Kurs Selenium
Viewing all articles
Browse latest Browse all 8

Kurs Selenium część 3 – Operacje na elementach stron WWW

$
0
0

Całość kursu dostępna tutaj

Selenium WebDriver jest biblioteką w pełni obiektową. Zgodnie z założeniem wszystko w tym także elementy na stronie są obiektami. Dzięki takiemu podejściu możemy elementy wyszukiwać i zapisywać w pamięci jako obiekty, po czym wykonywać akcje na obiektach.

Model obiektowy przydaje się także podczas modelowania struktury naszych testów, ale o tym będzie w kolejnych rozdziałach.

Najpierw inicjalizujemy obiekt typu WebElement

import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
WebElement linkToAgilePage = driver.findElement(By.linkText("Agile"));

Istnieje wiele różnych sposobów na wyszukiwanie elementów na stronie.
Aby sprawdzić czego możemy użyć wpisujemy w Eclipse:

driver.findElement(By.

i wciskamy [SPACJA]. IDE podpowie nam czego możemy użyć.

Najczęściej używane (przeze mnie) to:

By.id();
By.name();
By.linkText();
By.xpath();

Dzieki takiej różnorodności możemy wybrać metodę poszukiwania elementów na stronie, która będzie najmniej ryzykowna. Chodzi tutaj o ryzyko tego, że dany element wkrótce może się zmienić albo nie będzie unikatowy.

Następnie możemy wykonywać już akcje na wyszukanych obiektach.

linkToAgilePage.click();

Przykładowy test z kilkoma akcjami wykonanymi na elementach strony znajdziecie poniżej. W następnym rozdziale zajmiemy się czyszczeniem naszych testów tak by były bardziej czytelne.

package pl.testowka;

import static org.testng.Assert.*;
import org.testng.annotations.AfterClass;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;

public class TestowkaTest {

	static WebDriver driver;

	@BeforeClass
	public void setUp() {
		driver = new FirefoxDriver();
	}

	@Test
	public void ShouldBePosibleToSearchTestowkaAtGoogle()
			throws InterruptedException {
		driver.get("http://google.pl");
		WebElement searchField = driver.findElement(By.name("q"));
		searchField.sendKeys("testowka.pl");
		WebElement searchButton = driver.findElement(By
				.xpath("//*[@id=\"gbqfb\"]/span"));
		searchButton.click();
		for (int second = 0;; second++) {
			if (second >= 60)
				fail("timeout");
			try {
				if (driver.findElement(By.linkText("Testowka.pl"))
						.isDisplayed()) {
					break;
				}
			} catch (Exception e) {
			}
			Thread.sleep(1000);
		}
		WebElement linkToTestowka = driver.findElement(By
				.linkText("Testowka.pl"));
		linkToTestowka.click();
	}

	@AfterClass
	public static void tearDown() {
		driver.close();
	}

}

Viewing all articles
Browse latest Browse all 8

Trending Articles


TRX Antek AVT - 2310 ver 2,0


Автовишка HAULOTTE HA 16 SPX


POTANIACZ


Zrób Sam - rocznik 1985 [PDF] [PL]


Maxgear opinie


BMW E61 2.5d błąd 43E2 - klapa gasząca a DPF


Eveline ➤ Matowe pomadki Velvet Matt Lipstick 500, 506, 5007


Auta / Cars (2006) PLDUB.BRRip.480p.XviD.AC3-LTN / DUBBING PL


Peugeot 508 problem z elektroniką


AŚ Jelenia Góra