ในช่วง 3 ปีที่ผ่านมา ทีมการทำงานอัตโนมัติของเบราว์เซอร์ของ Chrome ได้ทำงานร่วมกับผู้ให้บริการเบราว์เซอร์และเครื่องมือรายใหญ่อื่นๆ เช่น BrowserStack เพื่อสร้าง WebDriver BiDi ซึ่งเป็นโปรโตคอลการทำงานอัตโนมัติของเบราว์เซอร์แบบใหม่ที่ช่วยเปิดใช้เวิร์กโฟลว์การทำงานอัตโนมัติแบบ 2 ทิศทางในเบราว์เซอร์ต่างๆ ก่อนหน้านี้เวิร์กโฟลว์เหล่านี้ใช้ได้เฉพาะกับ Chrome DevTools Protocol ที่เป็นกรรมสิทธิ์ในเบราว์เซอร์ที่ใช้ Chromium เท่านั้น
วันนี้ถือเป็นความสำเร็จครั้งสำคัญของความพยายามร่วมกันเนื่องจาก WebDriver BiDi ได้เตรียมพร้อมสำหรับเวอร์ชันที่ใช้งานจริงสำหรับนักพัฒนาซอฟต์แวร์ได้ในที่สุด โดยเริ่มต้นจาก BrowserStack วันนี้
Selenium และ BrowserStack
เมื่อเร็วๆ นี้ BrowserStack ได้กลายเป็นพาร์ทเนอร์การพัฒนาอย่างเป็นทางการของ Selenium ซึ่งเป็นเฟรมเวิร์กการทำงานอัตโนมัติของเบราว์เซอร์แบบโอเพนซอร์สที่พัฒนามาอย่างสมบูรณ์และมีส่วนช่วยในการพัฒนา WebDriver BiDi ด้วย การเป็นพาร์ทเนอร์ทางธุรกิจครั้งนี้แสดงให้เห็นถึงการลงทุนอย่างต่อเนื่องของ BrowserStack ในระบบนิเวศการทดสอบที่เฟื่องฟู โดย BrowserStack ยังจ้างผู้ดูแลหลักของ Selenium หลายคนด้วย
Selenium Grid เป็นส่วนหนึ่งของโปรเจ็กต์ Selenium ซึ่งช่วยให้คุณเรียกใช้การทดสอบในอุปกรณ์หลายเครื่องพร้อมกันได้ แต่การตั้งค่ากริดด้วยตนเอง การซื้อและดูแลรักษาอุปกรณ์ต่างๆ หลายสิบเครื่อง รวมถึงการทำให้อุปกรณ์พร้อมใช้งานอยู่เสมออาจเป็นเรื่องยากหรือเป็นไปไม่ได้สำหรับบางคน
โซลูชัน Selenium Grid ที่โฮสต์ เช่น BrowserStack ช่วยให้ทำการทดสอบในแพลตฟอร์มและอุปกรณ์ต่างๆ ได้ง่ายขึ้นโดยไม่ต้องจัดการด้วยตนเอง
WebDriver BiDi ใน Selenium Grid
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 ขอแสดงความยินดีกับทีมเบราว์เซอร์สแต็กที่เปิดตัวการสนับสนุน WebDriver BiDi ในวันนี้ นอกจากนี้ เรายังหวังว่าการรองรับ WebDriver BiDi จะขยายการให้บริการไปยัง BrowserStack, เครื่องมืออื่นๆ เช่น Selenium รวมถึงเบราว์เซอร์หลักอื่นๆ ในอีกไม่กี่สัปดาห์ข้างหน้า
และถ้าการประกาศนี้ทำให้คุณรู้สึกตื่นเต้นเกี่ยวกับการทดสอบ แต่คุณยังไม่ได้เริ่มเส้นทางการทดสอบเลย อย่าลืมไปที่หลักสูตร "เรียนรู้การทดสอบ" ใน web.dev