Ana içeriğe geç

BasePage

BasePage, sayfa nesneleri (page object) için kullanıma hazır yardımcı metodlar sağlar; böylece testlerinizde asla ham Selenium çağrıları yazmazsınız.


Sayfa nesnesi oluşturma​

import io.testfly.test.BasePage;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;

public class LoginPage extends BasePage {

private static final By USERNAME = By.id("username");
private static final By PASSWORD = By.id("password");
private static final By SUBMIT = By.id("submit");

public LoginPage(WebDriver driver) {
super(driver);
}

public void login(String username, String password) {
type(USERNAME, username);
type(PASSWORD, password);
click(SUBMIT);
}
}

Kullanılabilir metodlar​

click(By locator)​

Öğenin tıklanabilir olmasını bekler, ardından tıklar.

click(By.id("submit"));

type(By locator, String text)​

Alanı temizler, ardından verilen metni yazar. Önce görünür olmasını bekler.

type(By.id("username"), "admin");

getText(By locator)​

Öğenin görünür olmasını bekler, metnini döndürür.

String heading = getText(By.cssSelector("h1"));

getAttribute(By locator, String attribute)​

Öğenin görünür olmasını bekler, verilen öznitelik değerini döndürür.

String value = getAttribute(By.id("input"), "value");
String href = getAttribute(By.cssSelector("a.link"), "href");

isDisplayed(By locator)​

Öğe mevcutsa ve görünürse true, aksi halde false döndürür. Hata fırlatmaz.

if (isDisplayed(By.id("error-banner"))) {
// handle error
}

WaitEngine'i doğrudan kullanma​

Yukarıdaki yardımcı metodların kapsamadığı gelişmiş beklemeler için getWait() kullanın:

import io.testfly.wait.WaitEngine;

public class DashboardPage extends BasePage {

public DashboardPage(WebDriver driver) {
super(driver);
}

public boolean isLoaded() {
WaitEngine.waitForInvisible(By.cssSelector(".spinner"));
return isDisplayed(By.id("dashboard-content"));
}
}

Eksiksiz sayfa nesnesi örneği​

public class CheckoutPage extends BasePage {

private static final By QUANTITY = By.name("qty");
private static final By PAY_BTN = By.id("pay-now");
private static final By SUCCESS = By.cssSelector(".order-success");

public CheckoutPage(WebDriver driver) { super(driver); }

public void setQuantity(int qty) {
type(QUANTITY, String.valueOf(qty));
}

public void pay() {
click(PAY_BTN);
WaitEngine.waitForVisible(SUCCESS);
}

public String getConfirmationMessage() {
return getText(SUCCESS);
}
}