Çapraz Tarayıcı Testi kullanarak Selenium Web Sürücüsü
⚡ Akıllı Özet
Çapraz Tarayıcı Testi kullanarak Selenium WebDriver, bir web uygulamasının Chrome'da tutarlı bir şekilde davrandığını doğrular. FirefoxSafari ve Edge tarayıcılarını birleştirmenin nasıl yapılacağını gösteren bu eğitim videosu, bu tarayıcıların özelliklerini nasıl birleştirebileceğinizi anlatıyor. Selenium Web Sürücüsü TestNG Paralel oturumlar başlatmak, görüntülemeyi doğrulamak ve modern masaüstü ve mobil tarayıcılarda kapsamı genişletmek için.

Neden Çapraz Tarayıcı Testine ihtiyacımız var?
Web tabanlı uygulamalar, yerel masaüstü uygulamalarından çok farklıdır. Bir web uygulaması, son kullanıcı tarafından herhangi bir tarayıcıda açılabilir. Örneğin, bazı kişiler uygulamayı herhangi bir tarayıcıda açmayı tercih eder. https://twitter.com in Firefoxdiğerleri kullanırken krom, Safariya da Microsoft Edge.
Aşağıdaki şemada, eski tarayıcılarda Twitter giriş kutusunun yuvarlak köşelerinin doğru şekilde oluşturulmadığını, modern Chrome'un ise köşeleri tasarlandığı gibi oluşturduğunu gözlemleyebilirsiniz.
Dolayısıyla, web uygulamasının tüm popüler tarayıcılarda beklendiği gibi çalışmasını sağlamamız gerekiyor, böylece daha fazla insan ona erişebilsin ve kullanabilsin.
Bu amaç, Çapraz Tarayıcı ile gerçekleştirilebilir. Test yapmak Ürün, kapsam dahilindeki her tarayıcıda çalışır.
Tarayıcılar Arası Uyumluluk Sorunlarının Nedenleri
- Farklı tarayıcılarda yazı tipi boyutu uyuşmazlığı.
- JavaChrome (V8) genelinde komut dosyası motoru uygulamaları farklılık gösterir. Firefox (SpiderMonkey), Safari (JavaScriptCore) ve Edge.
- CSS ve HTML doğrulama farklılıkları, satıcı ön eklerinin işlenmesi de dahil olmak üzere.
- Eski tarayıcı sürümlerinde HTML5 ve ECMAScript özellik desteğinde tutarsızlık veya kısmi sorunlar yaşanabiliyor.
- Sayfa hizalaması, div boyutlandırması ve flexbox veya grid oluşturma varyasyonları.
- Görüntü yönü ve renk profili farklılıkları.
- Tarayıcının, temel işletim sistemiyle uyumsuzluğu, mobil WebView'deki tuhaflıklar da dahil olmak üzere. Android ve iOS.
Çapraz Tarayıcı Testi Nasıl Yapılır?
eğer kullanıyorsak Selenium WebDriver ile Chrome'a karşı test senaryolarını otomatikleştirebiliriz. Firefox, Microsoft Edgeve Safari tarayıcıları.
Aynı makinede aynı anda farklı tarayıcılarla test senaryolarını çalıştırmak için, aşağıdaki entegrasyonu yapabiliriz: TestNG çerçeve Selenium WebDriver. Daha geniş işletim sistemi ve sürüm kapsamı için, aynı paket, uzak bir WebDriver uç noktası aracılığıyla Sauce Labs, BrowserStack veya LambdaTest gibi bulut ağlarına yönlendirilebilir.
testing.xml dosyanız şu şekilde görünecektir:
Bu test.xml, aşağıdakilerle eşleşecektir: Test Durumu Bu da şöyle görünüyor:
Çünkü testing.xml dosyasında birden fazla Test etiketi var ('ChromeTest', 'Firefox'Test', 'EdgeTest' gibi test senaryoları her tarayıcı için bir kez çalıştırılacaktır.
İlk test olan 'ChromeTest', 'browser' parametresinin değerini 'chrome' olarak geçirecek, böylece ChromeDriver çalıştırılacaktır. Bu test senaryosu Chrome tarayıcısında çalıştırılacaktır.
İkinci Test 'FirefoxTest', 'tarayıcı' parametresinin değerini ' olarak iletecektirFirefox', Bu yüzden FirefoxSürücü çalıştırılacak. Bu test senaryosu şurada çalıştırılacak: Firefox Tarayıcı. Edge veya Safari testi eklemek de aynı yöntemi izler.
Guru99CrossBrowserScript.java
Tamamla Code:
package parallelTest; import java.util.concurrent.TimeUnit; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.edge.EdgeDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.safari.SafariDriver; import org.testng.annotations.BeforeTest; import org.testng.annotations.Parameters; import org.testng.annotations.Test; public class CrossBrowserScript { WebDriver driver; /** * This function will execute before each Test tag in testng.xml * @param browser * @throws Exception */ @BeforeTest @Parameters("browser") public void setup(String browser) throws Exception{ //Check if parameter passed from TestNG is 'firefox' if(browser.equalsIgnoreCase("firefox")){ //create firefox instance System.setProperty("webdriver.gecko.driver", ".\\geckodriver.exe"); driver = new FirefoxDriver(); } //Check if parameter passed as 'chrome' else if(browser.equalsIgnoreCase("chrome")){ //set path to chromedriver.exe System.setProperty("webdriver.chrome.driver",".\\chromedriver.exe"); //create chrome instance driver = new ChromeDriver(); } //Check if parameter passed as 'Edge' else if(browser.equalsIgnoreCase("Edge")){ //set path to msedgedriver.exe System.setProperty("webdriver.edge.driver",".\\msedgedriver.exe"); //create Edge instance driver = new EdgeDriver(); } //Check if parameter passed as 'Safari' else if(browser.equalsIgnoreCase("Safari")){ //SafariDriver ships with macOS, no driver path needed driver = new SafariDriver(); } else{ //If no browser passed throw exception throw new Exception("Browser is not correct"); } driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); } @Test public void testParameterWithXML() throws InterruptedException{ driver.get("https://demo.guru99.com/V4/"); //Find user name WebElement userName = driver.findElement(By.name("uid")); //Fill user name userName.sendKeys("guru99"); //Find password WebElement password = driver.findElement(By.name("password")); //Fill password password.sendKeys("guru99"); } }
test.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="TestSuite" thread-count="3" parallel="tests" > <test name="ChromeTest"> <parameter name="browser" value="Chrome" /> <classes> <class name="parallelTest.CrossBrowserScript"> </class> </classes> </test> <test name="FirefoxTest"> <parameter name="browser" value="Firefox" /> <classes> <class name="parallelTest.CrossBrowserScript"> </class> </classes> </test> <test name="EdgeTest"> <parameter name="browser" value="Edge" /> <classes> <class name="parallelTest.CrossBrowserScript"> </class> </classes> </test> </suite>
NOT: Testi çalıştırmak için sağ tıklayın. test.xml"Çalıştır" seçeneğini belirleyin ve tıklayın. TestNG Süit.
Bulut Tarayıcı Izgaraları ile Ölçeklendirme
Koşu Selenium WebDriver yerel olarak iki veya üç tarayıcıyı destekler, ancak gerçek kullanıcılar yüzlerce işletim sistemi ve tarayıcı kombinasyonundan sitelere erişir. Bulut laboratuvarları gibi... Sos Laboratuvarları, BrowserStack, ve Lambda Testi Uzak bir WebDriver uç noktası açığa çıkarın. Aynı noktaya işaret edin. Selenium Testler şebeke düzeyinde gerçekleştirilir, tarayıcı, sürüm, işletim sistemi ve çözünürlük için istenen yetenekler sağlanır ve paket, yerel sürücüleri yönetmeye gerek kalmadan yatay olarak ölçeklenebilir.
Modern test ağları ayrıca, uzun ömürlü tarayıcılar arası test paketlerinde bakım yükünü azaltan görsel regresyon farkı bulma, kendi kendini onaran öğe konumlandırıcılar ve tutarsızlık puanlaması gibi yapay zeka destekli özellikler de sunmaktadır.
Not: Verilen program şu ortamda oluşturulmuş ve test edilmiştir: Selenium 4, Chrome, Firefox, ve Microsoft EdgeProgramlar hata verirse, lütfen sürücü dosyalarını yüklü tarayıcı sürümünüzle eşleşecek şekilde güncelleyin veya aşağıdaki yöntemi kullanın. Selenium Sürücüleri otomatik olarak çözümleyen yönetici.
Atomic Cüzdanı indirin : Selenium Bu Eğitimdeki Demoya İlişkin Proje Dosyaları




