2017-02-03 4 views
0

프로그래밍 방식으로 1 개의 사이트에 로그온하려고합니다.WebBrowser를 사용하여 웹 사이트에 로그인 할 수 없습니다.

WebBrowser webBrowser = new WebBrowser(); 
webBrowser.Navigate("http://www.smarsy.ua"); 
while (webBrowser.ReadyState != WebBrowserReadyState.Complete) 
    System.Windows.Forms.Application.DoEvents(); 
System.Threading.Thread.Sleep(500); 

HtmlDocument doc = webBrowser.Document; 
doc.GetElementById("username").InnerText = "username"; 
doc.GetElementById("password").InnerText = "password"; 
doc.GetElementById("inputButton").InvokeMember("Click"); 

while (webBrowser.ReadyState != WebBrowserReadyState.Complete) 
    System.Windows.Forms.Application.DoEvents(); 
System.Threading.Thread.Sleep(500); 

webBrowser.Navigate("http://smarsy.ua/private/parent.php"); 
while (webBrowser.ReadyState != WebBrowserReadyState.Complete) 
    System.Windows.Forms.Application.DoEvents(); 
System.Threading.Thread.Sleep(500); 

웹 페이지 : : 무슨 일이야

... 
<input class="validate[required,minSize[8],custom[onlyNumber]] full" type="text" id="username" name="username" maxlength="8" value="" data-com.agilebits.onepassword.user-edited="yes" data-cip-id="username" autocomplete="off"> 
... 
<input class="validate[required,minSize[6],custom[onlyPassword]] full" type="password" id="password" name="password" maxlength="24" value="" data-cip-id="password" data-com.agilebits.onepassword.user-edited="yes"> 
... 
<input type="submit" name="submit" value="Ввійти" class="full passive"> 

나는 작동하지 않는 코드를 다음습니까? 또는 C#을 사용하여 사이트를 스크랩하는 좋은 프레임 워크를 제안 할 수도 있습니다.

+0

당신이 사용자 이름 텍스트 상자의 ID의를 확인 했, 암호와 버튼이 하나

doc.GetElementById("inputButton").InvokeMember("Click"); 

:

코드의 당신의 라인을 교체 : 나는 다음과 같은 그것을 테스트? 그렇다면 페이지의 다른 버튼/링크를 클릭하여 InvokeMember를 다시 확인하십시오. –

+0

질문에 HTML 소스 코드를 추가했습니다. 해당 페이지에는 다른 버튼이 없습니다. –

답변

1

문제는 단추가 사용자의 메서드로 클릭되지 않는다는 것입니다. 또한

HtmlElementCollection Bclick = webBrowser.Document.GetElementsByTagName("input"); 
     foreach (HtmlElement Btn in Bclick) 
     { 
      string name = Btn.Name; 
      if (name == "submit") 
       Btn.InvokeMember("click"); 
     }