자동로그인을 하려고 합니다.
HTML이 워낙 커서 모두 올릴 수는 없구요.
중요한 부분만 올립니다.
델파이코드는 아래와 같습니다.
Function Login(WebBrowser : TWebBrowser; Const LoginURL, ID , PWD : String): Boolean;
var
oDocument : IHTMLDocument2;
oForm : IHTMLFormElement;
oID, oPWD : IHTMLInputElement;
oSubmit : IHTMLElement;
Begin
Result := False;
WebBrowser.Navigate(LoginURL);
while WebBrowser.ReadyState < READYSTATE_INTERACTIVE do
Begin
Sleep(5);
Application.ProcessMessages;
End;
IF NOT Supports(WebBrowser.OleObject.Document, IHTMLDocument2, oDocument) Then Exit;
IF NOT Supports(oDocument.item('frm', 0), IHTMLFormElement, oForm) Then Exit;
IF NOT Supports(oForm.item('uid', 0), IHTMLInputElement, oID) Then Exit;
IF NOT Supports(oForm.item('upwd', 0), IHTMLInputElement, oPWD) Then Exit;
IF NOT Supports(oDocument.links.item('btn', 0), IHTMLElement, oSubmit) Then Exit;
oID.value := ID;
oPWD.value := PWD;
oSubmit.click;
Result := false;
End;
이렇게 했는데요.
물론 손으로 입력하면 이상 없이 로그인이 잘 되는것이
위 코드로 실행을 하면 아이디와 암호입력까지는 잘 되는데
submit버튼 클릭이벤트에서 뭘 어떻게 해 놓았는지 버튼을 클릭하면 암호가 틀리다고 나옵니다.
HTML스크립트 파일이 워낙 많아서 그 중 어느 파일이 해당 스크립트가 있는 파일인지 찾을 수가 없어 스크립트 분석은 불가능할 것 같습니다.
하루 종일 고민하다가 결국 방법은 키보드로 입력할때와 똑같이
암호자리의 value값에 암호를 넣을 것이 아니고
커서를 집어 넣고 암호를 입력하게 한 다음 엔터키를 누르는 코드가 필요할것 같은데요.
어떻게 해야 할지 모르겠습니다.
아무리 인터넷을 뒤져봐도 INPUT테그에 직접 글자를 입력하고 엔터키를 누르는 소스코드를 구할 수가 없네요.
고수분들께서 도와주시면 감사하겠습니다.
|