Ana içeriğe geç

SmartLocator

SmartLocator, birden fazla locator stratejisini sırayla dener ve bulunup görünür olan ilk öğeyi döndürür. Bir öğenin locator'ının ortamlar, tarayıcılar veya uygulama sürümleri arasında farklılık gösterebileceği durumlarda kullanın.


Temel kullanım​

import io.testfly.test.SmartLocator;

// Önce CSS'i deneyin, XPath'e geri dönün
WebElement btn = SmartLocator.find(driver,
By.cssSelector(".submit-btn"),
By.xpath("//button[@type='submit']"),
By.id("submit")
);

Sayfa nesnesinin içinden​

public class LoginPage extends BasePage {

public void clickSubmit() {
// dayanıklı — bu locator'lardan herhangi biri eşleşirse çalışır
WebElement btn = SmartLocator.find(driver,
By.id("submit"),
By.cssSelector("button[type='submit']"),
By.xpath("//button[contains(text(),'Log in')]")
);
btn.click();
}
}

Hata fırlatmadan görünürlüğü kontrol edin​

boolean anyVisible = SmartLocator.isAnyVisible(driver,
By.id("error-banner"),
By.cssSelector(".alert-error")
);

if (anyVisible) {
// hata durumunu işle
}

SmartLocator ne zaman kullanılır​

DurumSmartLocator kullanılsın mı?
Öğe locator'ı ortamlar arasında değişiyorEvet
Küçük farklılıkları olan birden fazla tarayıcıEvet
Seçicileri istikrarsız olan aktif geliştirmedeki uygulamaEvet
Kararlı, iyi korunan locator'larHayır — doğrudan By kullanın

Loglama​

SmartLocator bir öğeyi çözdüğünde, hangi stratejinin başarılı olduğunu loglar:

[SmartLocator] Resolved using: By.cssSelector: .submit-btn

Bu, CI loglarında hangi locator'ın gerçekte kullanıldığını belirlemeyi kolaylaştırır.


İlgili: Kendini Onaran Locator'lar​

SmartLocator önden hareket eder — aday locator'ları kendiniz listelersiniz. Kendini Onaran Locator'lar, bir locator başarısız olduktan sonra hareket eder ve orijinal seçiciden otomatik olarak geri dönüş operatörlerini türetir ve her onarımı loglar. Varyasyon beklediğiniz yerlerde SmartLocator kullanın ve öngörmediğiniz kaymalar için güvenlik ağı olarak kendini onarmayı açık bırakın.