ดาวน์โหลด Geckodriver สำหรับ Firefox & Selenium
GeckoDriver คืออะไร Selenium?
คำว่า Gecko ย่อมาจาก Web Browser engine ที่ฝังอยู่ใน Mozilla Firefox เบราว์เซอร์ ไดรเวอร์ Gecko ทำหน้าที่เป็นพร็อกซีระหว่างไคลเอนต์ที่เปิดใช้งานไดรเวอร์เว็บEclipse, Netbeans ฯลฯ) และ Mozilla Firefox เบราว์เซอร์ กล่าวโดยย่อ ไดรเวอร์ Gecko ทำหน้าที่เป็นตัวเชื่อมโยงระหว่าง Selenium การทดสอบไดรเวอร์เว็บและ Mozilla Firefox เบราว์เซอร์
ก่อน Selenium 3, โมซิลลา Firefox เบราว์เซอร์เป็นเบราว์เซอร์เริ่มต้นสำหรับ Selenium. หลังจากที่ Selenium 3 ผู้ทดสอบจำเป็นต้องเริ่มต้นสคริปต์เพื่อใช้ Firefox ใช้ GeckoDriver อย่างชัดเจน Selenium ใช้โปรโตคอล W3C Webdriver เพื่อส่งคำขอไปยัง GeckoDriver ซึ่งแปลเป็นโปรโตคอลชื่อ Mariโอเน็ตต์ Firefox จะเข้าใจคำสั่งที่ส่งผ่านในรูปแบบของ Mariโปรโตคอล onette และดำเนินการ
วิธีดาวน์โหลดและติดตั้ง GeckoDriver ใน Selenium
Gecko Driver สามารถดาวน์โหลดเป็นไฟล์ปฏิบัติการได้บนระบบ ต่อไปนี้คือรายการขั้นตอนในการดาวน์โหลดไดรเวอร์ Gecko
ขั้นตอนที่ 1 ) เลือกเวอร์ชันที่เหมาะสม
ที่หน้านี้ https://github.com/mozilla/geckodriver/releases เลือกเวอร์ชันที่เหมาะสมสำหรับการดาวน์โหลด GeckoDriver ตามระบบปฏิบัติการของคุณ
ขั้นตอน 2) แตกไฟล์ ZIP
เมื่อการดาวน์โหลดไฟล์ ZIP เสร็จสิ้น ให้แตกเนื้อหาของไฟล์ ZIP ลงในโฟลเดอร์ไฟล์
ขั้นตอน 3) สังเกตสถานที่
จดบันทึกตำแหน่งที่คุณแยกไดรเวอร์ ตำแหน่งดังกล่าวจะถูกใช้ในภายหลังเพื่อสร้างไดรเวอร์
วิธีเริ่มต้น GeckoDriver
มีสามวิธีที่แตกต่างกันในการเริ่มต้น GeckoDriver
1. การใช้ DesiredCapabilities
ขั้นแรก ให้ตั้งค่าคุณสมบัติของระบบสำหรับ Gecko Driver
ไวยากรณ์:
System.setProperty("webdriver.gecko.driver","Path to geckdriver.exe file");
ตัวอย่าง:
System.setProperty("webdriver.gecko.driver","D:\\Downloads\\GeckoDriver.exe");
ถัดไป ตั้งค่าความสามารถที่ต้องการ
ความสามารถที่ต้องการช่วยได้ Selenium เพื่อทำความเข้าใจชื่อเบราว์เซอร์ เวอร์ชัน และระบบปฏิบัติการในการดำเนินการทดสอบอัตโนมัติ ด้านล่างนี้คือโค้ดสำหรับตั้งค่าไดรเวอร์ Gecko โดยใช้คลาส DesiredCapabilities
DesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setCapability("marionette",true);
นี่คือรหัสที่สมบูรณ์
System.setProperty("webdriver.gecko.driver", driverPath); DesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setCapability("marionette",true); driver= new FirefoxDriver(capabilities);
2. การใช้คุณสมบัติของหุ่นกระบอก
สามารถเริ่มต้นไดรเวอร์ Gecko ได้โดยใช้คุณสมบัติหุ่นกระบอกดังต่อไปนี้
System.setProperty("webdriver.gecko.driver","D:\\Downloads\\GeckoDriver.exe");
หากเริ่มต้นไดรเวอร์ตุ๊กแกโดยใช้วิธีการข้างต้น รหัสสำหรับความสามารถที่ต้องการคือ ไม่ จำเป็นต้องใช้
3 ใช้ Firefox Options
Mozilla Firefox เวอร์ชัน 47+ มีไดรเวอร์ Marionette เป็นระบบเก่า การใช้ประโยชน์จากสิ่งนี้ทำให้สามารถเรียกใช้ไดรเวอร์ Marionette ได้โดยใช้ Firefox ตัวเลือกตามด้านล่างนี้
FirefoxOptions options = new FirefoxOptions(); options.setLegacy(true);
โค้ดสำหรับเปิด Firefox โดยใช้ไดรเวอร์ Gecko
package com.guru99.demo; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.remote.DesiredCapabilities; public class GeckoDriverDemo { String driverPath = "D:\\Guru99Demo\\GeckoDriver.exe"; public WebDriver driver; @Before public void startBrowser() { System.setProperty("webdriver.gecko.driver", driverPath); DesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setCapability("marionette", true); driver = new FirefoxDriver(capabilities); } @Test public void navigateToUrl() { driver.get("https://demo.guru99.com/selenium/guru99home/"); } @After public void endTest() { driver.quit(); } }
คำอธิบายรหัส
@ก่อนวิธี
ขั้นแรก เราต้องตั้งค่าคุณสมบัติของระบบสำหรับไดรเวอร์ gecko ไปยังตำแหน่งดาวน์โหลดไฟล์ geckdriver.exe เราต้องตั้งค่าคุณสมบัติของ marionette เป็น true สำหรับ Selenium ใช้ Mariโปรโตคอล onette เพื่อสื่อสารกับ Gecko Driver สุดท้ายนี้เราก็ต้องเริ่มต้นการ Firefox อินสแตนซ์เบราว์เซอร์ที่ใช้วัตถุสำหรับความสามารถที่ต้องการ
ข้อความด้านล่างช่วยให้บรรลุภารกิจข้างต้น
System.setProperty("webdriver.gecko.driver", driverPath); DesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setCapability("marionette",true); driver= new FirefoxDriver(capabilities);
@วิธีทดสอบ
เรากำลังนำทางไปยัง URL ที่ผู้ใช้ระบุโดยใช้วิธี "get" ในตัวที่จัดทำโดย Selenium ไดรเวอร์เว็บ ข้อความด้านล่างช่วยให้บรรลุเป้าหมายเดียวกัน
driver.get("https://demo.guru99.com/selenium/guru99home/");
@วิธีหลัง
สุดท้ายนี้ เรากำลังปิดอินสแตนซ์ของเบราว์เซอร์โดยใช้วิธีการออก
driver.quit();
แก้ไขสคริปต์ที่ไม่ใช่ตุ๊กแกเป็นตุ๊กแก
สคริปต์ไดรเวอร์ที่ไม่ใช่ตุ๊กแกเคยใช้มาก่อน Selenium 3 ตรงไปตรงมา เราจำเป็นต้องสร้างอินสแตนซ์ของ Firefox ไดรเวอร์และใช้ตัวแปรอินสแตนซ์
@Before public void startBrowser() { driver = new FirefoxDriver(); }
หากต้องการแปลงเป็นตุ๊กแก คุณต้องเพิ่มโค้ดหนึ่งบรรทัด
@Before public void startBrowser() { System.setProperty("webdriver.gecko.driver", "D:\\Downloads\\GeckoDriver.exe"); driver = new FirefoxDriver(); }
มีข้อยกเว้นทั่วไปเกิดขึ้นขณะใช้ Gecko Driver
ต่อไปนี้เป็นรายการข้อยกเว้นทั่วไปที่เกิดขึ้นขณะใช้ Gecko Driver และมีความละเอียด
ข้อดีของการใช้ Gecko Driver
Selenium Webdriver เวอร์ชัน 2.53 เข้ากันไม่ได้กับ Mozilla Firefox เวอร์ชัน 47.0+ ที่ Firefox ไดรเวอร์ที่ใช้ใน Mozilla เวอร์ชันก่อนหน้า Firefox จะถูกยกเลิก และจะใช้เฉพาะการใช้งาน GeckoDriver เท่านั้น ดังนั้นผู้ทดสอบจึงถูกบังคับให้ใช้ GeckoDriver หากต้องการรันการทดสอบอัตโนมัติบน Mozilla Firefox เวอร์ชัน 47.0+ แต่คำถามใหญ่ – อะไรคือข้อได้เปรียบ?
ข้อได้เปรียบที่สำคัญของการใช้ GeckoDriver เมื่อเทียบกับค่าเริ่มต้น Firefox ไดรเวอร์คือ ความเข้ากันได้- GeckoDriver ใช้ โปรโตคอล W3C WebDriver ที่จะสื่อสารกับ Selenium- W3C เป็นมาตรฐานสากลสำหรับ Web Driver นี่หมายความว่า Selenium นักพัฒนา (ผู้ที่เขียนโค้ด Selenium base) ไม่จำเป็นต้องสร้าง Web Driver เวอร์ชันใหม่สำหรับเบราว์เซอร์แต่ละเวอร์ชัน Web Driver เดียวกันนี้สามารถใช้ได้กับเบราว์เซอร์หลายเวอร์ชัน ดังนั้น GeckoDriver จึงเป็นที่นิยมมากกว่าเมื่อเปรียบเทียบกับการใช้งานก่อนหน้าของ Firefox คนขับรถ