كانت هذه المكتبة مستوحاة من السيلينيوم والعرق
Tswebdriver4Delphi هو مشروع يتضمن مجموعة متنوعة من الأدوات التي تتيح أتمتة متصفح الويب (في الوقت الحالي ، Chrome فقط). يوفر على وجه التحديد بنية تحتية لمواصفات W3C WebDriver. مع نهج مشابه للسيلينيوم ، يسمح Tswebdriver4Delphi بأتمتة التفاعلات مع عناصر واجهة المستخدم ، مما يجعل الاختبارات أكثر كفاءة وموثوقية.
WebDriver هي واجهة تحكم عن بُعد تتيح التنفيذ والتحكم في عوامل المستخدم. يوفر بروتوكول سلك محايد من النظام الأساسي واللغة كوسيلة للبرامج خارج العملية لتوجيه سلوك متصفحات الويب عن بُعد.
المقدمة هي مجموعة من الواجهات لاكتشاف عناصر DOM ومعالجتها في مستندات الويب والتحكم في سلوك وكيل المستخدم. يُقصد في المقام الأول السماح لمؤلفي الويب بكتابة الاختبارات التي تتم أتمتة وكيل المستخدم من عملية تحكم منفصلة ، ولكن يمكن أيضًا استخدامها بطريقة للسماح برامج نصية داخل المتصفح للتحكم في متصفح منفصل.
نشأ مفهوم هذا المشروع من الحاجة إلى أداء "تجريف الويب" على موقع ويب معين. على الرغم من وجود العديد من الخيارات لهذه المهمة ، مثل السيلينيوم مع Python ، و Puppeteer في Node.js ، والكاتب المسرحي في C#، نشأ السؤال: ماذا عن دلفي؟ اخترت عدم اللجوء إلى CEF4Delphi الشهير ، بحثًا عن بديل أخف مع عدد أقل من التبعيات. أردت حلًا يعالج المطالب بكفاءة ، مما يوفر تجربة أكثر مرونة وغير معقدة. في هذا السيناريو ، قمت بتطوير هذه الأداة في دلفي لتبسيط عملي.
️ Attention: The project is still in the alpha stage. Classes and methods may undergo changes during development.
استنساخ المستودع والتأكد من أن التبعيات محدثة
git clone [email protected]:GabrielTrigo/TSWebDriver4Delphi.git
git submodule init
git submodule update
تفضل بزيارة صفحة التنزيل الرسمية لـ WebDriver الخاص بمستعرضك (حاليًا ، فقط للكروم) وقم بتنزيل برنامج التشغيل الذي يتوافق مع الإصدار المثبت على جهاز الكمبيوتر الخاص بك.
للعثور على إصدار متصفح Chrome الخاص بك ، اتبع هذه الخطوات: انتقل إلى الإعدادات> المساعدة> حول Google Chrome. على سبيل المثال ، قد يكون الإصدار مثل 121.0.6167.140 (البناء الرسمي) 64 بت. تأكد من تنزيل WebDriver الذي يطابق هذا الإصدار المحدد لضمان التكامل المناسب مع بيئة التطوير الخاصة بك.
تنزيلات Chrome WebDriver
var
FDriver: ITSWebDriverBase;
FChromeDriver: ITSWebDriverBrowser;
begin
FDriver := TTSWebDriver.New.Driver();
FDriver.Options.DriverPath( ' your-pathwebdriver.exe ' );
FChromeDriver := FDriver.Browser().Chrome();
end ; ؟ راجع مشروع المثال ( exampleExampleTSWebDriver ) ومشروع الاختبار ( testTSWebDriver4DelphiTests )
تجريف موقع ميركادو ليفر 
FChromeDriver.NavigateTo( ' https://letcode.in/elements ' );
FChromeDriver.WaitForPageReady();
LElement := FChromeDriver.FindElement(FBy.ClassName( ' search-box__input ' ));
LElement.SendKeys( ' automate ' );
FChromeDriver.WaitForSelector( ' .search-box__link ' );
LElement := FChromeDriver.FindElement(FBy.ClassName( ' search-box__link ' ));
LElement.Click();