반응형
웹 페이지 로그인 하는 방법
간략하게,
1. 웹페이지 띄우기 (해당 주소로 이동)
2. 아이디/비밀번호 입력
3. 로그인 시도
--
0. HTML 컨트롤 도구 먼저 추가한다.
앞서와 마찬가지로 (givemethesocks.tistory.com/5) 참조추가 -> Microsoft HTML Object Library
이후 documentation 보면서 더듬더듬 해본다. (구글 검색으로 블로그를 찾아보면 너무 예전 것들이랑 지금이랑 다른게 많다. 되긴 할거다.)
ihtmlelement document
.net framework document
docs.microsoft.com/ko-kr/dotnet/api/system.windows.forms.htmldocument?view=netframework-4.7.2
1. 웹페이지 띄우기
이건 이전 글에서 했으니 패스
2. 아이디/비밀번호 입력
//login form 획득
IHTMLElement elem = elems.item("frmLogin", 0);
//ID/비번 입력
IHTMLElement boxID = elem.getAttribute("nameID", 0);
boxID.setAttribute("value", "myID");
IHTMLElement boxPW = elem.getAttribute("namePW", 0);
boxPW.setAttribute("value", "myPW");
3. form submit
여기에서 삽질이 좀 길었는데,
처음엔 자바스크립트로 로그인 버튼 클릭 시 호출되는 'checklogin()' 이벤트 자체를 호출하려고 했다. --> 왠지모르게 실패함. 아마 공식 자바스크립트 함수가 아니라 사이트에서 정의한 함수라 안되는거같다.
/*
//실패함
mshtml.IHTMLDocument2 document2 = (IHTMLDocument2)webBrowser.Document;
document2.parentWindow.execScript("checklogin()");
*/
두번째엔 C#에서 지원하는 invokemember (클래스에서 정의된 함수 호출)로 하려고 했고 성공했는데, 이게 이전에 winform에서 사용하던 HTMLElement와 현재 WPF에서 사용하는 IHTMLElement에서의 함수가 조금 다르더라. document에 잘(?) 정리되어 있다.
이 한줄 쓰느라 두시간걸림...ㅠ
elem.GetType().InvokeMember("submit", System.Reflection.BindingFlags.InvokeMethod, null, elem, null); //wpf 거지같다.
728x90
반응형
'C#' 카테고리의 다른 글
[C#] 클래스 / 클래스 리스트 연습 (0) | 2020.10.05 |
---|---|
[C#] 웹 브라우저 제어2 - WPF browser 사용 (0) | 2020.10.04 |
[C#] 웹 브라우저 제어 - 익스플로러(IE) 창 띄우기 (0) | 2020.10.02 |
[C#] 1. 버튼 클릭 이벤트 (0) | 2020.10.01 |
[C#] 매크로 만들기 ver.1 - 웹페이지 이벤트 자동참여 (0) | 2020.10.01 |
최근댓글