การทำงานอัตโนมัติด้วย WebDriver BiDi พร้อมใช้งานบน BrowserStack แล้ว

Matthias Rohmer
Matthias Rohmer

ในช่วง 3 ปีที่ผ่านมา ทีมการทำงานอัตโนมัติของเบราว์เซอร์ Chrome ได้ ทำงานร่วมกับผู้ให้บริการเบราว์เซอร์และเครื่องมือรายใหญ่อื่นๆ เช่น BrowserStack สร้าง WebDriver BiDi ซึ่งเป็นโปรโตคอลการทำงานอัตโนมัติของเบราว์เซอร์ใหม่ ซึ่งทำให้มีเวิร์กโฟลว์การทำงานอัตโนมัติแบบ 2 ทิศทางในเบราว์เซอร์ต่างๆ เหล่านี้ ก่อนหน้านี้เวิร์กโฟลว์จะทำได้ด้วยเครื่องมือสำหรับนักพัฒนาเว็บใน Chrome ที่เป็นกรรมสิทธิ์เท่านั้น โปรโตคอลในเบราว์เซอร์แบบ Chromium

วันนี้ถือเป็นก้าวสำคัญของความพยายามร่วมกันในฐานะ WebDriver BiDi ในที่สุดก็พร้อมสำหรับการใช้งานจริงสำหรับนักพัฒนาซอฟต์แวร์ โดยเริ่มจาก BrowserStack วันนี้เลย

ซีลีเนียมและ BrowserStack

เมื่อเร็วๆ นี้ BrowserStack ได้ร่วมเป็นพาร์ทเนอร์การพัฒนาอย่างเป็นทางการของ Selenium เฟรมเวิร์กการทำงานอัตโนมัติสำหรับเบราว์เซอร์แบบโอเพนซอร์ส ซึ่งมีส่วนทำให้ WebDriver BiDi การเป็นพาร์ทเนอร์ทางธุรกิจครั้งนี้เป็นข้อพิสูจน์ให้เบราว์เซอร์สแต็กยังคง ในระบบนิเวศการทดสอบที่เฟื่องฟู โดย BrowserStack ยังใช้ ผู้บำรุงรักษาหลักหลายรายของ Selenium

ส่วนหนึ่งของโครงการ Selenium คือ Selenium Grid ซึ่งจะช่วยให้คุณทำการทดสอบในอุปกรณ์ต่างๆ พร้อมกันได้ แต่การสร้างตารางกริด สร้างด้วยตัวเอง ค้นหา และดูแลรักษาอุปกรณ์ต่างๆ การสร้างความพร้อมให้บริการนั้นอาจเป็นเรื่องที่ท้าทายหรือเป็นไปไม่ได้เลยสำหรับบางคน

โซลูชัน Selenium Grid ที่โฮสต์ เช่น BrowserStack ทำให้เรียกใช้ ในแพลตฟอร์มและอุปกรณ์ต่างๆ มากมายโดยไม่ต้องจัดการในอุปกรณ์ ของตัวเอง

WebDriver BiDi บนตารางกริด Selenium

Selenium เป็นไปตามมาตรฐาน WebDriver (โปรดทราบว่า BiDi หายไป) แต่ การสนับสนุนเวอร์ชันทดลองสำหรับ WebDriver BiDi สักระยะหนึ่ง ตั้งแต่วันนี้เป็นต้นไป คุณจะสามารถใช้ WebDriver BiDi ออกคำสั่งในเวอร์ชันที่ใช้งานจริงบน Selenium Grid ที่โฮสต์ใน BrowserStack

ซึ่งจะเปิดใช้ฟีเจอร์ต่างๆ เช่น การสกัดกั้นคำขอ การจำลองขั้นสูง และ จัดการเหตุการณ์ของเบราว์เซอร์แบบเรียลไทม์ ไม่ใช่แค่ใน Chrome แต่รวมถึงในทุก เบราว์เซอร์ที่สนับสนุน WebDriver BiDi

ตัวอย่างต่อไปนี้แสดงวิธีฟังเหตุการณ์ในบันทึกโดยใช้ WebDriver BiDi บน BrowserStack จากนั้น บันทึกที่จับได้จะนำไปตรวจสอบกับ automate.browserstack.com:

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!
})();

BrowserStack เป็นเพียงจุดเริ่มต้น

ทีมการทำงานอัตโนมัติของเบราว์เซอร์ Chrome ร่วมแสดงความยินดีกับทีมที่ BrowserStack สำหรับ เปิดตัวการรองรับ WebDriver BiDi วันนี้ นอกจากนี้ เรายังรอ เห็นการรองรับ WebDriver BiDi ที่ขยายไปยังเบราว์เซอร์สแต็กและเครื่องมืออื่นๆ เช่น Selenium รวมถึงเบราว์เซอร์หลักอื่นๆ ในอีกไม่กี่สัปดาห์ข้างหน้า

และถ้าการประกาศนี้ทำให้คุณตื่นเต้นเกี่ยวกับการทดสอบ แต่ยังไม่ได้เริ่มทดสอบ เส้นทางการทดสอบ อย่าลืมดูหลักสูตร "เรียนรู้การทดสอบ" ใน web.dev