WebDriver BiDi ile otomasyon artık Tarayıcı Yığını'nda

Matthias Rohmer
Matthias Rohmer

Chrome'un Tarayıcı Otomasyonu Ekibi, son üç yıldır BrowserStack gibi diğer büyük tarayıcı ve araç tedarikçileriyle birlikte çalışarak tarayıcılar arasında iki yönlü otomasyon iş akışlarını etkinleştiren yeni bir tarayıcı otomasyonu protokolü olan WebDriver BiDi'yi oluşturdu. Bu iş akışları daha önce yalnızca Chromium tabanlı tarayıcılarda özel Chrome DevTools Protokolü ile mümkündü.

WebDriver BiDi, bugün BrowserStack'tan itibaren geliştiriciler için üretime hazır hale geldiğinden, bu ortak çalışmanın önemli bir aşamasını bugün tamamlıyoruz.

Selenium ve BrowserStack

Kısa süre önce BrowserStack, WebDriver BiDi'ye de katkıda bulunan gelişmiş, açık kaynak bir tarayıcı otomasyon çerçevesi olan Selenium'un resmi bir geliştirme ortağı oldu. Bu iş ortaklığı, BrowserStack'ın gelişen bir test ekosistemine yaptığı sürekli yatırımın bir kanıtıdır. BrowserStack, Selenium'un birkaç temel geliştiricisini de istihdam etmektedir.

Selenium projesinin bir parçası olan Selenium Grid, birden fazla cihazda paralel olarak test çalıştırmanıza olanak tanır. Ancak kendi başınıza bir ızgara oluşturmak, düzinelerce farklı cihaz edinip bunları yönetmek ve kullanıma hazır tutmak bazı kullanıcılar için zor hatta imkansız olabilir.

BrowserStack gibi barındırılan Selenium Grid çözümleri, testlerinizi kendiniz yönetmek zorunda kalmadan birçok farklı platform ve cihazda çalıştırmayı kolaylaştırabilir.

Selenyum Izgarasında WebDriver BiDi

Selenium, WebDriver standardını temel alır (eksik BiDi'ye dikkat edin) ancak bir süredir WebDriver BiDi için deneysel destek sunmaktadır. Bugünden itibaren, BrowserStack'ın barındırdığı Selenium Grid'de WebDriver BiDi komutlarını üretimde kullanabilirsiniz.

Bu sayede, istek yakalama, gelişmiş emülasyon ve tarayıcı etkinliklerini gerçek zamanlı olarak işleme gibi özellikler artık yalnızca Chrome'da değil, WebDriver BiDi'yi destekleyen her tarayıcıda kullanılabilir.

Aşağıdaki örnekte, BrowserStack'ta WebDriver BiDi kullanılarak günlük etkinliklerinin nasıl dinleneceği gösterilmektedir. Yakalanan günlükler, daha sonra automate.browserstack.com adresinde de incelenebilir:

const webdriver = require('selenium-webdriver');

// Insert credentials from https://www.browserstack.com/accounts/profile/details
const USERNAME = '<YOUR_USERNAME>';
const ACCESS_KEY = '<YOUR_ACCESS_KEY>';

(async () => {
  const driver = await (new webdriver.Builder()
    .withCapabilities({
      browserName: 'chrome',
      'bstack:options': {
        seleniumVersion: '4.22.0',
        seleniumBidi: true, // Enable WebDriver BiDi.
      },
    })
    .usingServer(
      `https://${USERNAME}:${ACCESS_KEY}@hub-cloud.browserstack.com/wd/hub`
    )
    .build());

  // Add a listener for log events.
  await driver.script().addConsoleMessageHandler((logEntry) => {
    console.log(logEntry.text);
  });

  await driver.get(
    'https://www.selenium.dev/selenium/web/bidi/logEntryAdded.html'
  );

  // Trigger a console log on the demo page.
  await driver.findElement({ id: 'consoleLog' }).click();
  await driver.quit();

  // Inspect logs on automate.browserstack.com!
})();

Tarayıcı Yığını sadece başlangıç

Chrome Tarayıcı Otomasyon Ekibi, BrowserStack'in WebDriver BiDi desteğini kullanıma sunması nedeniyle ekibi tebrik ediyor. Ayrıca, önümüzdeki haftalarda WebDriver BiDi desteğinin BrowserStack, Selenium gibi diğer araçlar ve diğer büyük tarayıcılarda da genişletilmesini bekliyoruz.

Bu duyuru sizi test konusunda heyecanlandırdıysa ancak test yolculuğunuza henüz başlamadıysanız web.dev'deki Test Öğrenme kursumuza göz atmayı unutmayın.