이 도서관은 셀레늄과 인형극에서 영감을 받았습니다
TSWEBDRIVER4DELPHI는 웹 브라우저 자동화를 가능하게하는 다양한 도구를 캡슐화하는 프로젝트입니다 (현재 크롬 만). 특히 W3C WebDriver 사양에 대한 인프라를 제공합니다. 셀레늄과 유사한 접근 방식을 사용하면 TSWEBDRIVER4DELPHI를 통해 사용자 인터페이스 요소와의 상호 작용을 자동화 할 수있어 테스트가보다 효율적이고 신뢰할 수 있습니다.
WebDriver는 사용자 에이전트의 내성 및 제어를 가능하게하는 원격 제어 인터페이스입니다. 프로세스 외 프로그램이 웹 브라우저의 동작을 원격으로 지시하는 방법으로 플랫폼 및 언어 중립 와이어 프로토콜을 제공합니다.
웹 문서에서 DOM 요소를 발견하고 조작하고 사용자 에이전트의 동작을 제어하기위한 일련의 인터페이스 세트가 제공됩니다. 주로 웹 저자가 별도의 제어 프로세스에서 사용자 에이전트를 자동화하는 테스트를 작성할 수 있지만 브라우저 내 스크립트가 A (개별적으로-브라우저를 제어 할 수 있도록 사용될 수도 있습니다.
이 프로젝트의 개념은 특정 웹 사이트에서 "웹 스크래핑"을 수행해야 할 필요성에서 비롯되었습니다. 파이썬이있는 셀레늄, node.js의 인형극, C#의 극작가와 같은이 작업에 대한 다양한 옵션이 있지만 질문이 발생했습니다. Delphi는 어떻습니까? 나는 유명한 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
브라우저의 웹 드라이버 (현재, 크롬의 경우에만)의 공식 다운로드 페이지를 방문하여 컴퓨터에 설치된 버전에 해당하는 드라이버를 다운로드하십시오.
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 )를 참조하십시오.
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();