ดาวน์โหลด Geckodriver สำหรับ Firefox & Selenium

⚡ สรุปอย่างชาญฉลาด

GeckoDriver สำหรับ Firefox และ Selenium ทำหน้าที่เป็นตัวกลางระหว่างไคลเอ็นต์ W3C WebDriver และ Mozilla Firefoxโดยการแปลงคำสั่งเป็น Mariคู่มือนี้อธิบายถึงโปรโตคอล onette วิธีการติดตั้ง การเริ่มต้นใช้งาน ตัวอย่างโค้ด ข้อผิดพลาดทั่วไป และข้อดีด้านความเข้ากันได้หลักๆ

  • 🦊 บทบาทเชื่อมโยง: GeckoDriver เชื่อมต่อ Selenium ไคลเอ็นต์ WebDriver พร้อม Firefox โดยใช้โปรแกรม Mariโปรโตคอลโอเน็ตต์
  • ⬇️ ขั้นตอนการตั้งค่าเริ่มต้น: ดาวน์โหลด GeckoDriver เวอร์ชันที่ถูกต้องจากคลังซอฟต์แวร์อย่างเป็นทางการของ Mozilla สำหรับระบบปฏิบัติการของคุณ
  • ⚙️ เส้นทางการเริ่มต้นสามเส้นทาง: เริ่มต้นใช้งานไดรเวอร์ผ่าน DesiredCapabilities ซึ่งเป็นคุณสมบัติของระบบ marionette หรือ Firefoxตัวเลือก
  • 🧪 ตัวอย่างขั้นตอนการทำงาน: ใช้ JUnit การใช้คำอธิบายประกอบ เช่น @Before, @Test และ @After เพื่อจัดการวงจรชีวิตของเบราว์เซอร์อย่างเป็นระเบียบ
  • 🛠️ แก้ไขข้อผิดพลาดทั่วไป: แก้ไขปัญหา SessionNotCreated และ connection-refused โดยการจัดเรียงให้สอดคล้องกัน Firefox, Seleniumและเวอร์ชันไดรเวอร์
  • 🌐 ข้อได้เปรียบของ W3C: มาตรฐาน W3C WebDriver ช่วยให้สามารถใช้งานร่วมกันได้ระหว่างเวอร์ชันต่างๆ ลดภาระการบำรุงรักษาสำหรับชุดเครื่องมืออัตโนมัติ

GeckoDriver เข้ามาแล้ว Selenium

GeckoDriver คืออะไร Selenium?

คำว่า Gecko หมายถึงเอ็นจิ้นเว็บเบราว์เซอร์ที่ติดตั้งอยู่ใน Mozilla Firefox เบราว์เซอร์ GeckoDriver ทำหน้าที่เป็นตัวกลางระหว่างไคลเอ็นต์ที่เปิดใช้งาน WebDriver (Eclipse, NetBeans, IntelliJ IDEAเป็นต้น) และ Mozilla Firefox กล่าวโดยสรุป GeckoDriver ทำหน้าที่เป็นตัวเชื่อมระหว่างเบราว์เซอร์ Selenium การทดสอบ WebDriver และ Mozilla Firefox.

ก่อน Selenium 3. Mozilla Firefox เบราว์เซอร์เป็นเบราว์เซอร์เริ่มต้นสำหรับ Selenium. หลังจากที่ Selenium 3. ผู้ทดสอบต้องเริ่มต้นสคริปต์ก่อนใช้งาน Firefox ผ่านทาง GeckoDriver โดยตรง Selenium ใช้โปรโตคอล W3C WebDriver ในการส่งคำขอไปยัง GeckoDriver ซึ่งจะแปลงคำขอเหล่านั้นเป็นโปรโตคอลชื่อ... Mariโอเน็ตต์ Firefox จากนั้นจึงเข้าใจคำสั่ง transmitเท็ดใน Mariรูปแบบโปรโตคอล onette และดำเนินการตามโปรโตคอลเหล่านั้น

ข้อดีของการใช้ GeckoDriver

Selenium WebDriver เวอร์ชัน 2.53 ไม่สามารถใช้งานร่วมกับ Mozilla ได้ Firefox เวอร์ชัน 47.0 ขึ้นไป รุ่นเก่า Firefox ไดรเวอร์ที่ใช้ใน Mozilla รุ่นก่อนหน้า Firefox การพัฒนาเวอร์ชันใหม่ได้ถูกยกเลิกไปแล้ว และปัจจุบันสามารถใช้งานได้เฉพาะการใช้งาน GeckoDriver เท่านั้น ดังนั้น ผู้ทดสอบจึงจำเป็นต้องใช้ GeckoDriver ในการรันการทดสอบอัตโนมัติบน Mozilla Firefox รุ่น 47.0 และสูงกว่า

ข้อได้เปรียบที่สำคัญของการใช้ GeckoDriver เหนือระบบเดิม Firefox ไดรเวอร์คือ ความเข้ากันได้GeckoDriver อาศัย... โปรโตคอล W3C WebDriver ที่จะสื่อสารกับ SeleniumW3C เป็นมาตรฐานที่กำหนดขึ้นอย่างเป็นสากลสำหรับ WebDriver ซึ่งหมายความว่า Selenium นักพัฒนาไม่จำเป็นต้องสร้างเวอร์ชันไดรเวอร์ใหม่สำหรับเบราว์เซอร์แต่ละรุ่น การใช้งาน WebDriver แบบเดียวกันสามารถใช้ได้กับเบราว์เซอร์หลายเวอร์ชัน ซึ่งเป็นเหตุผลว่าทำไม GeckoDriver จึงได้รับความนิยมมากกว่า WebDriver รุ่นเก่า Firefox คนขับรถ

วิธีดาวน์โหลดและติดตั้ง GeckoDriver ใน Selenium

GeckoDriver เป็นไฟล์ปฏิบัติการที่สามารถดาวน์โหลดลงในระบบของคุณได้โดยตรง โปรดทำตามขั้นตอนด้านล่างเพื่อดาวน์โหลดและติดตั้ง GeckoDriver Selenium ระบบอัตโนมัติ

ขั้นตอน 1) เลือกเวอร์ชันที่เหมาะสม
ในหน้าประกาศอย่างเป็นทางการ https://github.com/mozilla/geckodriver/releasesเลือกเวอร์ชัน GeckoDriver ที่เหมาะสมกับระบบปฏิบัติการและสถาปัตยกรรมของคุณ

ดาวน์โหลดและติดตั้ง GeckoDriver ใน Selenium

ขั้นตอน 2) Extracในไฟล์ ZIP
เมื่อดาวน์โหลดไฟล์ ZIP เสร็จสมบูรณ์แล้ว ตัวอย่างเช่นtracบันทึกเนื้อหาลงในโฟลเดอร์บนเครื่องของคุณ

Extracไฟล์ ZIP ของ GeckoDriver

ขั้นตอน 3) โปรดสังเกตตำแหน่งของคนขับ
บันทึกเส้นทางโฟลเดอร์ที่คุณเรียกใช้tracted ไดรเวอร์ ตำแหน่งนี้จะถูกใช้ในภายหลังเพื่อสร้างอินสแตนซ์ของไดรเวอร์จากสคริปต์ทดสอบของคุณ

หมายเหตุ ตำแหน่งของ GeckoDriver

วิธีการเริ่มต้นใช้งาน GeckoDriver

มีสามวิธีที่แตกต่างกันในการเริ่มต้นใช้งาน GeckoDriver ในระบบของคุณ Selenium สคริปต์ทดสอบ เลือกสคริปต์ที่เหมาะสมกับเฟรมเวิร์กการทดสอบของคุณมากที่สุด และ Selenium รุ่น

1. การใช้ DesiredCapabilities

ขั้นแรก ให้ตั้งค่าคุณสมบัติของระบบสำหรับ GeckoDriver

ไวยากรณ์:

System.setProperty("webdriver.gecko.driver","Path to geckodriver.exe file");

ตัวอย่าง:

System.setProperty("webdriver.gecko.driver","D:\\Downloads\\GeckoDriver.exe");

ถัดไป ให้ตั้งค่าความสามารถที่ต้องการ ความสามารถที่ต้องการจะช่วย Selenium ทำความเข้าใจชื่อเบราว์เซอร์ เวอร์ชัน และระบบปฏิบัติการที่จำเป็นในการเรียกใช้การทดสอบอัตโนมัติ ด้านล่างนี้คือโค้ดสำหรับกำหนดค่า GeckoDriver โดยใช้คลาส 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 ใช้ Mariทรัพย์สินของโอเน็ตต์

นอกจากนี้ ยังสามารถเริ่มต้นใช้งาน GeckoDriver โดยใช้คุณสมบัติ marionette ดังแสดงด้านล่าง

System.setProperty("webdriver.gecko.driver","D:\\Downloads\\GeckoDriver.exe");

หาก GeckoDriver ถูกเริ่มต้นใช้งานโดยใช้วิธีการข้างต้น รหัส Desired Capabilities จะเป็นดังนี้ ไม่ จำเป็นต้องใช้

3 ใช้ Firefoxตัวเลือก

Mozilla Firefox เวอร์ชัน 47+ เปิดเผยข้อมูล Mariไดรเวอร์ onette เป็นระบบดั้งเดิม การใช้ประโยชน์จากสิ่งนี้ Mariสามารถเรียกใช้ไดรเวอร์ onette ได้ผ่านทาง Firefox ตัวเลือกต่างๆ แสดงดังด้านล่างนี้

FirefoxOptions options = new FirefoxOptions();
options.setLegacy(true);

Code สำหรับการเปิดตัว Firefox การใช้ GeckoDriver

ดังต่อไปนี้ JUnitตัวอย่างที่อิงตามนี้แสดงให้เห็นถึงโปรแกรมที่สมบูรณ์และสามารถใช้งานได้ Selenium การทดสอบที่เริ่มต้น Firefox ผ่าน GeckoDriver และนำทางไปยังหน้าสาธิต URL.

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

}

Code คำอธิบาย

@ก่อนวิธี

ในขั้นต้น เราตั้งค่าคุณสมบัติของระบบสำหรับ GeckoDriver ให้เป็นตำแหน่งที่ดาวน์โหลดไฟล์ geckodriver.exe นอกจากนี้เรายังตั้งค่าคุณสมบัติ marionette เป็น true ด้วย Selenium ใช้ Mariโปรโตคอล onette เพื่อสื่อสารกับ GeckoDriver สุดท้าย เราเริ่มต้น Firefox อินสแตนซ์ของเบราว์เซอร์ที่ใช้ Object Desired Capabilities

คำสั่งต่อไปนี้จะทำให้ได้การตั้งค่าดังกล่าว

System.setProperty("webdriver.gecko.driver", driverPath);
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("marionette",true);
driver = new FirefoxDriver(capabilities);

@วิธีทดสอบ

เราจะนำทางไปยังตำแหน่งที่ผู้ใช้กำหนด URL ใช้ built-in get วิธีการที่จัดทำโดย Selenium WebDriver ดังแสดงในภาพด้านล่าง

driver.get("https://demo.guru99.com/selenium/guru99home/");

@วิธีหลัง

สุดท้าย เราปิดอินสแตนซ์ของเบราว์เซอร์โดยใช้ quit วิธี

driver.quit();

แก้ไขสคริปต์จากภาษาที่ไม่ใช่ Gecko ให้เป็นภาษา Gecko

สคริปต์ที่ไม่ใช่ GeckoDriver ที่ใช้ก่อนหน้านี้ Selenium ข้อ 3 ตรงไปตรงมา คุณเพียงแค่สร้างอินสแตนซ์ของ Firefox ไดรเวอร์และใช้ตัวแปรอินสแตนซ์

@Before
public void startBrowser() {
    driver = new FirefoxDriver();
}

ในการแปลงสคริปต์สำหรับ GeckoDriver คุณเพียงแค่เพิ่มโค้ดบรรทัดเดียวที่ชี้ไปยังตำแหน่งของไฟล์ geckodriver.exe เท่านั้น

@Before
public void startBrowser() {
    System.setProperty("webdriver.gecko.driver", "D:\\Downloads\\GeckoDriver.exe");
    driver = new FirefoxDriver();
}

ข้อผิดพลาดทั่วไปที่เกิดขึ้นขณะใช้งาน GeckoDriver

ต่อไปนี้คือรายการข้อผิดพลาดทั่วไปที่เกิดขึ้นขณะใช้งาน GeckoDriver พร้อมทั้งวิธีแก้ไขปัญหา

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

วิธีแก้ไขคือการตั้งค่าคุณสมบัติของระบบสำหรับ GeckoDriver โดยระบุตำแหน่งของไฟล์ geckodriver.exe ดังที่แสดงด้านล่าง

System.setProperty("webdriver.gecko.driver", "D:\\Downloads\\geckodriver.exe");

โปรดทราบว่าคุณต้องตั้งค่าคุณสมบัติของ GeckoDriver ก่อนที่จะสร้างอินสแตนซ์ของ Mozilla Firefox คนขับรถ

org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms.

ข้อยกเว้นนี้มักเกิดขึ้นเมื่อ Firefox เวอร์ชันได้รับการอัปเกรดเป็นเวอร์ชันล่าสุดแล้ว วิธีแก้ปัญหาคือการอัปเดตทั้งสองอย่าง Selenium อัปเดตไฟล์ JAR และ GeckoDriver เป็นเวอร์ชันล่าสุดที่เข้ากันได้ จากนั้นเรียกใช้สคริปต์อีกครั้ง

org.openqa.selenium.SessionNotCreatedException: Unable to create new remote session.

ข้อยกเว้นนี้เกิดขึ้นเนื่องจากปัญหาความเข้ากันได้ระหว่าง Selenium และ GeckoDriver GeckoDriver ทำงานร่วมกับ Firefox เวอร์ชัน 47 ขึ้นไป ปัญหาสามารถแก้ไขได้โดยการอัปเกรด Firefox เวอร์ชัน 47 หรือสูงกว่า

WebDriver Exception: Connection Refused

ข้อผิดพลาดนี้เกิดขึ้นเมื่อ WebDriver ไม่สามารถสร้างการเชื่อมต่อกับ... Firefoxปัญหานี้สามารถแก้ไขได้โดยใช้วิธีใดวิธีหนึ่งต่อไปนี้

  • ใช้ driver.quit() วิธีการทำลายอินสแตนซ์ของ WebDriver ที่สร้างขึ้นก่อนหน้านี้
  • ล้างแคชของเบราว์เซอร์ก่อนทำการทดสอบอัตโนมัติ
  • ทำความสะอาดพื้นที่ทำงานของโครงการภายใน Eclipse ไอดี.
  • ควรใช้เวอร์ชันล่าสุดเสมอ Selenium GeckoDriver พร้อมกับเวอร์ชันเสถียรล่าสุด Firefox ปล่อย

คำถามที่พบบ่อย

ไม่ใช่ GeckoDriver เป็นไฟล์ปฏิบัติการพร็อกซีที่ใช้มาตรฐาน W3C WebDriver MariOnette คือโปรโตคอลการทำงานอัตโนมัติที่สร้างขึ้นภายในระบบ FirefoxGeckoDriver แปลงคำสั่ง WebDriver เป็นรูปแบบต่างๆ Mariข้อความออนเน็ตที่ Firefox สามารถดำเนินการได้

GeckoDriver เวอร์ชันล่าสุดกำหนดเป้าหมายอย่างเป็นทางการแล้ว Firefox เวอร์ชัน 91 ESR และใหม่กว่า โปรดตรวจสอบบันทึกการเผยแพร่ GeckoDriver บนหน้า GitHub ของ Mozilla เสมอ เพื่อยืนยันเวอร์ชันขั้นต่ำและสูงสุด Firefox เวอร์ชันที่รองรับโดยบิลด์ที่คุณดาวน์โหลด

การเพิ่ม GeckoDriver ลงใน PATH ของระบบนั้นเป็นทางเลือก แต่สะดวกกว่า หากอยู่ใน PATH แล้ว คุณสามารถข้ามการเรียกใช้ System.setProperty ได้ มิเช่นนั้น คุณต้องระบุเส้นทางของไดรเวอร์อย่างชัดเจนภายในไฟล์การตั้งค่าของคุณ Selenium สคริปต์ทดสอบ

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

ไม่ ปัจจุบันเอเจนต์ AI ทำงานอยู่บนโปรโตคอล WebDriver มากกว่าที่จะมาแทนที่โปรโตคอลเหล่านั้น GeckoDriver ยังคงเป็นสะพานเชื่อมระหว่าง WebDriver กับโปรโตคอล WebDriver Firefoxในขณะที่เลเยอร์ AI เพิ่มตัวระบุตำแหน่งอัจฉริยะ การแก้ไขข้อผิดพลาดด้วยตนเอง และการสร้างแบบทดสอบด้วยภาษาธรรมชาติ นอกเหนือจากมาตรฐานที่มีอยู่เดิม

สรุปโพสต์นี้ด้วย: