Ana içeriğe geç

Tarayıcı Desteği

TestFly Chrome, Edge, Firefox ve Safari üzerinde çalışır. Özelliklerin çoğu yalnızca WebDriver ve JavaScript kullanır ve her yerde aynı davranır. Birkaçı Chrome DevTools Protocol (CDP) gerektirir. Selenium bunu yalnızca TestFly Chrome veya Edge'i yerelde başlattığında sunar. Başka bir sürücüde bu özellikler zayıflar ve her biri tarayıcı oturumu başına bir uyarı yazarak neyin değiştiğini söyler.

Uzak sürücülerde CDP yoktur

Selenium Grid, BrowserStack veya Sauce Labs üzerindeki bir tarayıcı RemoteWebDriver ile sürülür ve TestFly bugün bunun için DevTools bağlantısı kurmaz. Bu, uzaktaki tarayıcı Chrome olsa bile geçerlidir.

Nerede ne çalışır​

ÖzellikYerel Chrome / EdgeFirefox, SafariUzak (Grid, bulut)
Locator'lar, eylemler, actionability, beklemelerTamTamTam
Doğrulamalar, ARIA snapshot'larıTamTamTam
Adım izleri, ekran görüntüleriTamTamTam
Erişilebilirlik taramaları (axe-core)TamTamTam
Ağ mock'lama, network.blockUrls, NetworkAssertTamYok. Route'lar yok sayılır, istekler gerçek ağa gider. NetworkAssert başarısız olur.Yok
Video kaydıDevTools screencastPeriyodik ekran görüntüsü, kareler daha seyrekPeriyodik ekran görüntüsü
DeviceEmulatorTam: görünüm, piksel oranı, dokunma, user agent, gezinmede korunurPencereyi yeniden boyutlandırır ve geçerli sayfada navigator.userAgent değerini değiştirir. Gezinmede kaybolur.Firefox ile aynı
GeoLocationTamYalnızca geçerli sayfada geçerlidir. Gezinmede kaybolur.Firefox ile aynı
Saat mock'lamaYenileme ve gezinmede korunurYalnızca geçerli sayfaYalnızca geçerli sayfa
Konsol hatalarıTarayıcı günlüğü: sayfa yüklenirken ve link ile gidilen sayfalarda oluşan hatalar yakalanırYalnızca test open() çağırdıktan sonra yapılan console.error çağrıları. Sayfa yüklenirken oluşan hatalar, yakalanmamış istisnalar ve link ile gidilen sayfalar kaçar. Firefox'ta browser.bidi: true ile yakalanır; Safari'de BiDi yoktur.Doğrulanmadı
Performans LCP ve CLSTam-1 raporlanır, doğrulamalar atlanırDoğrulanmadı

Chrome ve Edge için "Tam" ve konsol hataları satırı, projenin entegrasyon testlerinde gerçek bir tarayıcıya karşı denenmiştir. Firefox, Safari ve uzak sütunları kaynak koddan çıkarılmıştır. Aşağıda anlatılan deneysel Firefox işi dışında proje bunları o tarayıcılarda çalıştırmamıştır.

Bunun testleriniz için anlamı​

  • Bir test ağ mock'una dayanıyorsa yerel Chrome veya Edge'de çalıştırın. Diğer tarayıcılarda mock sessizce yoktur ve test gerçek arka uca gider.
  • Firefox ve Safari'de failOnConsoleErrors, sayfa yüklenirken hata oluşsa bile geçebilir.
  • Bir özellik zayıfladığında, tarayıcı oturumu başına bir kez şöyle bir uyarı görünür:
[TestFly] NETWORK_MOCK is degraded on FirefoxDriver: Network mocking, URL blocking and network
assertions are not available; routes are ignored and requests reach the real network.

Birden fazla tarayıcıda test​

browser.matrix, paketi listelenen her tarayıcı için bir kez çalıştırır. Projenin kendi CI'ı tarayıcı entegrasyon testlerini Chrome'da, Firefox'ta ise deneysel bir iş olarak çalıştırır: build'i bozmadan başarısız olabilir ve Firefox'un nerede farklılaştığını gösterir. Yerelde yeniden üretmek için:

mvn verify -Preal-backends -Dtestfly.config=src/test/resources/testfly-real-backends-firefox.yml \
-Dit.test=ConsoleErrorIntegrationTest

Cihaz emülasyonu ipucu​

Chrome'da DeviceEmulator mobil bir görünüm ayarlar. <meta name="viewport" content="width=device-width"> içermeyen bir sayfa, gerçek bir telefonda olduğu gibi 980 piksel genişliğinde yerleşir. Bu yüzden window.innerWidth cihaz genişliği değil 980 olur.