WebDriverManager هي مكتبة Java مفتوحة المصدر تقوم بإدارة (على سبيل المثال، التنزيل والإعداد والصيانة) لبرامج التشغيل المطلوبة بواسطة Selenium WebDriver (على سبيل المثال، chromedriver، وgeckodriver، وmsedgedriver، وما إلى ذلك) بطريقة آلية بالكامل. بالإضافة إلى ذلك، يوفر WebDriverManager ميزات أخرى ذات صلة، مثل القدرة على اكتشاف المتصفحات المثبتة في النظام المحلي، وإنشاء كائنات WebDriver (مثل ChromeDriver
، FirefoxDriver
، EdgeDriver
، وما إلى ذلك)، وتشغيل المتصفحات في حاويات Docker بسلاسة.
اعتبارًا من الإصدار 5، تم نقل وثائق WebDriverManager هنا. يحتوي هذا الموقع على كافة الميزات والأمثلة والتكوين والإمكانيات المتقدمة لـ WebDriverManager.
الاستخدام الأساسي لـ WebDriverManager هو أتمتة إدارة برامج التشغيل. لاستخدام هذه الميزة، تحتاج إلى تحديد مدير معين في WebDriverManager API (على سبيل المثال، chromedriver()
لمتصفح Chrome) واستدعاء الطريقة setup()
. يوضح المثال التالي الهيكل العظمي لحالة اختبار باستخدام JUnit 5 وSelenium WebDriver وWebDriverManager.
import org . junit . jupiter . api . AfterEach ;
import org . junit . jupiter . api . BeforeAll ;
import org . junit . jupiter . api . BeforeEach ;
import org . junit . jupiter . api . Test ;
import org . openqa . selenium . WebDriver ;
import org . openqa . selenium . chrome . ChromeDriver ;
import io . github . bonigarcia . wdm . WebDriverManager ;
class ChromeTest {
WebDriver driver ;
@ BeforeAll
static void setupAll () {
WebDriverManager . chromedriver (). setup ();
}
@ BeforeEach
void setup () {
driver = new ChromeDriver ();
}
@ AfterEach
void teardown () {
driver . quit ();
}
@ Test
void test () {
// Your test logic here
}
}
وبدلاً من ذلك، يمكنك استخدام الطريقة create()
لإدارة برنامج التشغيل تلقائيًا وإنشاء كائن WebDriver
في سطر واحد. على سبيل المثال، على النحو التالي:
import org . junit . jupiter . api . AfterEach ;
import org . junit . jupiter . api . BeforeEach ;
import org . junit . jupiter . api . Test ;
import org . openqa . selenium . WebDriver ;
import org . openqa . selenium . chrome . ChromeDriver ;
import io . github . bonigarcia . wdm . WebDriverManager ;
class ChromeCreateTest {
WebDriver driver ;
@ BeforeEach
void setup () {
driver = WebDriverManager . chromedriver (). create ();
}
@ AfterEach
void teardown () {
driver . quit ();
}
@ Test
void test () {
// Your test logic here
}
}
لمزيد من المعلومات حول خوارزمية دقة برنامج التشغيل التي ينفذها WebDriverManager وإمكانيات التكوين، اقرأ الوثائق.
ميزة جديدة أخرى ذات صلة متوفرة في WebDriverManager 5 هي القدرة على إنشاء متصفحات في حاويات Docker خارج الصندوق. شرط استخدام هذه الميزة هو تثبيت Docker Engine في الجهاز الذي يجري الاختبارات. لاستخدامه، نحتاج إلى استدعاء الطريقة browserInDocker()
بالتزامن مع create()
لمدير معين. بهذه الطريقة، يسحب WebDriverManager الصورة من Docker Hub، ويبدأ الحاوية، وينشئ كائن WebDriver لاستخدامه. يعرض الاختبار التالي مثالاً بسيطًا لاستخدام Chrome في Docker. يتيح هذا المثال أيضًا تسجيل جلسة المتصفح والوصول عن بعد باستخدام noVNC:
import org . junit . jupiter . api . AfterEach ;
import org . junit . jupiter . api . BeforeEach ;
import org . junit . jupiter . api . Test ;
import org . openqa . selenium . WebDriver ;
import io . github . bonigarcia . wdm . WebDriverManager ;
class DockerChromeVncTest {
WebDriver driver ;
WebDriverManager wdm = WebDriverManager . chromedriver (). browserInDocker ()
. enableVnc (). enableRecording ();
@ BeforeEach
void setup () {
driver = wdm . create ();
}
@ AfterEach
void teardown () {
wdm . quit ();
}
@ Test
void test () {
// Your test logic here
}
}
يعد WebDriverManager جزءًا من OpenCollective، وهي منصة تمويل عبر الإنترنت للمجتمعات المفتوحة والشفافة. يمكنك دعم المشروع من خلال المساهمة كداعم (أي تبرع شخصي أو مساهمة متكررة) أو كراع (أي مساهمة متكررة من قبل شركة).
وبدلاً من ذلك، يمكنك الاعتراف بعملي عن طريق شراء القهوة لي:
WebDriverManager (حقوق الطبع والنشر © 2015-2024) هو مشروع تم إنشاؤه وصيانته بواسطة Boni Garcia وتم ترخيصه بموجب شروط ترخيص Apache 2.0.