該圖書館的靈感來自硒和木偶
TSWEBDRIVER4DELPHI是一個封裝了啟用Web瀏覽器自動化的各種工具(目前,僅Chrome)。它專門為W3C WebDriver規範提供了基礎架構。通過類似於硒的方法,tswebdriver4delphi允許與用戶界面元素進行交互自動化,從而使測試更加有效和可靠。
WebDriver是一個遙控界面,可以內省和控制用戶代理。它提供了一種平台和語言中性的電線協議,作為程序外程序以遠程指導Web瀏覽器的行為的一種方式。
提供是一組界面,可以在Web文檔中發現和操縱DOM元素並控制用戶代理的行為。它主要旨在允許Web作者編寫從單獨的控製過程中自動化用戶代理的測試,但也可以以允許瀏覽器腳本控制A(可能是單獨的 - 瀏覽器)的方式使用。
該項目的概念源於需要在特定網站上執行“網絡刮擦”。儘管此任務有許多選擇,例如python的硒,node.js中的puppeteer和c#中的劇作家,但出現了問題:delphi呢?我選擇不訴諸於著名的CEF4Delphi,尋求更輕的替代方案。我想要一種有效解決需求的解決方案,提供更敏捷和簡單的體驗。在這種情況下,我在Delphi開發了此工具,以簡化我的工作。
️ 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),然後下載與計算機上安裝的版本相對應的驅動程序。
要查找您的Chrome瀏覽器版本,請按照以下步驟:轉到“設置”>“幫助>有關Google Chrome”。例如,該版本可能是121.0.6167.140(官方構建)64位。確保下載與此特定版本匹配的網絡驅動器,以確保與開發環境的正確集成。
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 )
刮擦Mercado Livre網站
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();