DevHyun

TWebbrowser 컴포넌트 핸들링하기! 본문

Delphi

TWebbrowser 컴포넌트 핸들링하기!

D3V3L0P3R 2020. 12. 11. 13:55

TWebbrowser 컴포넌트에서 웹페이지를 호출 한 뒤 해당 페이지를 핸들링해보자!

 

1. Navigate 함수를 통해서 웹페이지 접속

procedure Tform1.FormCreate(Sender: TObject);
begin
     Webbrowser1.Navigate('https://www.000.com ');
end;

2. 버튼 클릭시 특정 행동(value 값 전달, focus, click 등등)

procedure Tform1.WebBrowser1DocumentComplete(ASender: TObject;
  const pDisp: IDispatch; const URL: OleVariant);
begin
    WebBrowser1.OleObject.Document.all.item('AAA').Value := edit1.Text;
    WebBrowser1.OleObject.Document.all.item('BBB').Value := edit2.Text;
    WebBrowser1.OleObject.Document.all.item('BBB').focus;
    WebBrowser1.OleObject.Document.all.item('CCC').Click;
end;

여기서 item들(aaa,bbb,ccc)을 확인하려면 HTML 지식이 필요하다.

웹페이지를 개발한 쪽에서 제공해준다면 편하겠지만 그렇지 않은 상황이 더 많을듯?

 

CHROME-해당 사이트 접속-개발자도구(F12)에서 확인 가능하다.

 

3. 예시화면

: 오른쪽 박스 부분을 클릭 한 뒤 왼쪽 웹페이지로 가면 선택된 부분들의 element를 볼 수있음.

 

4. elements에서 확인 후 source 탭에서 해당 input box의 id로 검색 후 name 확인

 

<span>
<input type="text" id="client-name" name="clientName" class="text" autocomplete="off" placeholder="고객이름" maxlength="100" title="고객이름"></span> 

 

5. input box에 값 입력도 가능하고 해당 input box에 focus를 주거나 버튼을 클릭할 수 도있음!

 

 

* Delphi 2009의 TWebbrowser 컴포넌트에서는 Keybd_Event(VK_RETURN, VK_RETURN, 0, 0 ); 이런식으로 키보드 이벤트가 먹었던것 같은데, Delphi 10.3에서는 Keybd_Evnet가 먹지 않았음. 그래서 웹페이지의 버튼으로 직접 접근했음. 왜인지는 모름!

Comments