2013-04-17 2 views
0

У меня есть программа, которую я создал для работы, которая отслеживает информацию. Мы получаем эту информацию с различных сайтов интрасети. Я хочу включить форму в свою программу, которая будет по сути быть настроенным веб-браузером, который позволяет мне легко перемещаться по этим сайтам. Это учебный проект для меня, поэтому, пожалуйста, простите мою неопытность.Вход на сайт при нажатии кнопки в веб-браузере

Для этого вопроса я ищу способ после загрузки страницы с помощью элемента управления браузера. Я могу войти на эту страницу из учетных данных, хранящихся в строке. У меня нет доступа к HTML-коду сайта, на котором я пытаюсь ввести эту информацию, и видел много руководств о том, как это сделать с помощью GetElementId, но после использования Firebug я не нашел ни одного из двух текстовых полей, которые мне нужно вводить, чтобы id (я все равно вижу). Сайт никогда не меняется, и я действительно рассматривал использование GetElementFromPoint, но не уверен, как это сделать, и это не показалось оптимальным. GetElementsByTagName, по-видимому, лучший способ обойти это, но я не уверен, как реализовать код.

Вот информация о двух элементах, которые я смог получить от firebug.

Имя пользователя текстовое поле: <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"> 

Поэтому мне нужно пройти, например, из моей Winform usernameString к j_username, а затем 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> 

EDIT

Я нашел способ ввода в к коробкам

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

Но у меня возникают проблемы, выяснить, как нажать кнопку кнопка «Вход»

+0

Какие параметры вы видите при попытке доступа к кнопке входа? – Brian

+0

Я понял это, конечно, сразу после публикации этого lol спасибо за ответ, хотя – Nabbic

ответ

1

Конечно, afte 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"); 
} 
Смежные вопросы