2013-04-17 5 views
0
내가 정보를 추적 내가 일을 위해 만든 프로그램이

내에서 클릭합니다. 우리는 다양한 인트라넷 사이트에서이 정보를 얻습니다. 본질적으로 그 사이트를 더 쉽게 탐색 할 수있는 사용자 정의 된 웹 브라우저가 될 내 프로그램에 양식을 포함하고자합니다. 이것은 나를위한 학습 프로젝트이므로 제 경험이 없으면 용서해주십시오.로그인-에서 버튼을 웹 사이트에 웹 브라우저 컨트롤

이 질문에 대한 대답은 문자열에 저장된 자격 증명을 사용하여 해당 페이지에 로그인 할 수있는 브라우저 컨트롤로 페이지를로드 한 후 방법을 찾고 있습니다. 나는이 정보를 입력하려고하는 사이트의 HTML 코드에 액세스 할 수 없으며 GetElementId를 통해이 작업을 수행하는 방법에 대한 많은 자습서를 보았지만 Firebug를 사용한 후에는 입력 할 필요가없는 두 개의 텍스트 상자를 찾지 못했습니다. id (나는 어쨌든 볼 수있다). 사이트가 변경되지 않고 GetElementFromPoint 사용을 고려했으나 이런 식으로 진행하는 방법을 모르고 최적으로 보이지 않았습니다. GetElementsByTagName은 코드를 구현하는 가장 좋은 방법 인 것처럼 보이지만 코드를 구현하는 방법은 확실하지 않습니다. 여기

내가 불을 지르고에서 얻을 수 있었던 두 가지 요소의 정보입니다.

사용자 이름 텍스트 상자 : <input type="text" name="j_username" size="12" onblur="this.value=this.value.toLowerCase(); setUserIdCookie();" click="this.value=this.value.toLowerCase();" onkeyup="this.value=this.value.toLowerCase();">

암호 텍스트 상자 :

<input type="password" onkeypress="checkCapsLock(event)" name="j_password" size="12"> 

그래서 내가 다음 j_username 내의 WinForm usernameString에서 예를 들어 통과 한 후 passwordString을 j_password와 필요는 <input type="submit" name="submit" value="Login"> 버튼에서을 클릭 웹 컨트롤. 이 사이트에서이 작업을 수행하는 방법에 대한 아이디어를 얻을 수 있다면 다른 사이트에서도 구현할 수있을만큼 충분히 배울 수 있어야합니다.

어떤 도움에 미리 감사 및 기타 정보를하시기 바랍니다 필요한 경우 알려 주시기 바랍니다.

전체 HTML 코드 :

<form method="POST"action="j_security_check" name="login"> 
<table border="0"width="30%"cellspacing="3"cellpadding="2"> 
    <tr> 
    <td class="default"><b>Login</b></td>  
    <td class="default"><input onkeyup="this.value=this.value.toLowerCase();" 
     click="this.value=this.value.toLowerCase();" 
     onblur="this.value=this.value.toLowerCase(); setUserIdCookie();"  
     type="text"size="12" name="j_username"></td>  
    </tr>  
    <tr>  
     <td class="default"><b>Password</b></td>  
     <td class="default"><input type="password" size="12" 
     name="j_password"onKeyPress="checkCapsLock(event)"></td>  
    </tr>  

    <tr>  
    <td colspan="2" align="center"><p class="default"> 
    <inputtype="submit"value="Login"name="submit"></td> 
    </tr> 
    </table> 
    </form> 

편집

나는 상자

  var x = webBrowser1.Document.All.GetElementsByName("j_username"); 
     x[0].InnerText = (usernameString); 
     var y = webBrowser1.Document.All.GetElementsByName("j_password"); 
     y[0].InnerText = (passwordString); 

에 입력 할 수있는 방법을 발견하지만 클릭하는 방법을 알아내는 데 문제가 있어요 로그인 버튼 afte 물론

+0

로그인 버튼에 액세스 할 때 어떤 옵션이 표시됩니까? – Brian

+0

나는 응답을 위해이 LOL 감사를 게시 한 직후 당연히 알아 냈다. – Nabbic

답변

1

r이 좋은 긴 게시물을 게시하고 몇 시간 동안이 일을 마침내 대답에 비틀 거렸다. 내가 여기있는 같은 문제를 가진 사람은 이것을 성취 할 수있는 방법입니다. 내 시나리오에서이 솔루션은 잘 작동합니다.

private void button4_Click(object sender, EventArgs e) 
{ 
    //Set username and password strings 
    string usernameString = "username"; 
    string passwordString = "password"; 

    //Input in to username field 
    var x = webBrowser1.Document.All.GetElementsByName("j_username"); 
    x[0].InnerText = (usernameString); 

    //Input in to password fields 
    var y = webBrowser1.Document.All.GetElementsByName("j_password"); 
    y[0].InnerText = (passwordString); 

    //Click the login button 
    var s = webBrowser1.Document.All.GetElementsByName("submit"); 
    s[0].InvokeMember("click"); 
}