none
Как сделать автозаполнение полей на сайте RRS feed

  • Вопрос

  • Доброй ночи)
    Как сделать автозаполнение полей на сайте?
    Например, программно написать коментарий или же заполнить форму\входа регистрации ?
    Подскажите, пожалуйста
    • Перемещено Abolmasov Dmitry 10 июня 2012 г. 18:57 (От:Где задать вопрос?)
    • Перемещено Abolmasov Dmitry 10 июня 2012 г. 18:59 (От:Веб)
    6 июня 2012 г. 23:34

Ответы

  • Тогда это не автозаполнение получается. Как вариант можно использовать WinForms с контролом WebBrowser. Загружать эту страницу в браузер, модифицировать с помощью c# и отправлять обратно на сервер. Или, если Ваш сайт предоставляет специальные API, хотя это вряд ли, работать с ним напрямую по Http из приложения. Но это более сложный вариант, лучше использовать первый.
    • Помечено в качестве ответа Abolmasov Dmitry 19 июня 2012 г. 6:26
    7 июня 2012 г. 13:36
    Модератор
  • Вот собственно простой базовый шаблон, скорее всего самый начальный стартовый проект.

    private void fillFormButton_Click(object sender, EventArgs e)
        {
          //Ищем html елемент по Id и заполняем его
          //данный элемент у меня на странице присутствует
          HtmlElement element = webBrowser.Document.GetElementById("UserName");
          element.SetAttribute("value", formValue.Text);
        }
    
        private void openUrlButton_Click(object sender, EventArgs e)
        {
          //У меня запущен тестовый сайт, у Вас естественно что нибудь другое
          //http://localhost:20420/Account/LogOn
          webBrowser.Url = new Uri(UrlTextBox.Text);
        }
    Это небольшой примерчик, как можно взаимодействовать с html страницей. Всё остальное зависит от Ваших фантазий и времени, очень много чего можно сделать манипулируя страницами в элементе WebBrowser.

    • Помечено в качестве ответа Abolmasov Dmitry 19 июня 2012 г. 6:25
    9 июня 2012 г. 12:45
    Модератор

Все ответы

  • При помощи JavaScript.
    Модератор
  • А на C# в обычном приложении ?
  • Да на C# ещё проще если это настольное приложение.
    Модератор
  • Есть сайт, а мне надо через настольное приложение заполнить форму(например регистрации) и отправить её сайту

    Как это реализовать ?))

    Я просто вообще не могу догадаться )

    7 июня 2012 г. 13:10
  • Тогда это не автозаполнение получается. Как вариант можно использовать WinForms с контролом WebBrowser. Загружать эту страницу в браузер, модифицировать с помощью c# и отправлять обратно на сервер. Или, если Ваш сайт предоставляет специальные API, хотя это вряд ли, работать с ним напрямую по Http из приложения. Но это более сложный вариант, лучше использовать первый.
    • Помечено в качестве ответа Abolmasov Dmitry 19 июня 2012 г. 6:26
    7 июня 2012 г. 13:36
    Модератор
  • А как второй реализовать?)

    7 июня 2012 г. 18:13
  • А чем первый не устраивает? Про второй лучше забудьте, и не всегда он реализуем.
    7 июня 2012 г. 18:39
    Модератор
  • Апи далеко не у всех сайтов

    А я хочу под многие сайты писать )

    7 июня 2012 г. 19:18
  • Ну тогда используйте первый, с WinForms и WebBrowser.
    7 июня 2012 г. 19:36
    Модератор
  • А может подскажете методы\способы решения ?
    7 июня 2012 г. 19:55
  • Подскажу в близжайшее время, как свободное время будет, приведу пример.
    Модератор
  • Вот собственно простой базовый шаблон, скорее всего самый начальный стартовый проект.

    private void fillFormButton_Click(object sender, EventArgs e)
        {
          //Ищем html елемент по Id и заполняем его
          //данный элемент у меня на странице присутствует
          HtmlElement element = webBrowser.Document.GetElementById("UserName");
          element.SetAttribute("value", formValue.Text);
        }
    
        private void openUrlButton_Click(object sender, EventArgs e)
        {
          //У меня запущен тестовый сайт, у Вас естественно что нибудь другое
          //http://localhost:20420/Account/LogOn
          webBrowser.Url = new Uri(UrlTextBox.Text);
        }
    Это небольшой примерчик, как можно взаимодействовать с html страницей. Всё остальное зависит от Ваших фантазий и времени, очень много чего можно сделать манипулируя страницами в элементе WebBrowser.

    • Помечено в качестве ответа Abolmasov Dmitry 19 июня 2012 г. 6:25
    9 июня 2012 г. 12:45
    Модератор
  • <td style="vertical-align: bottom; height: 22px; text-align: right; padding-right: 0px; padding-bottom: 4px;">
                      <form name="form1" method="get" action="http://pikabu.ru/search.php" style="padding: 0; margin: 0; display: inline;">
                        <div style="vertical-align: middle; padding: 0; margin: 0; ">
                            <input type="text" name="q" id="search_menu" value="поиск..." style="height: 19px; line-height: 19px; vertical-align: top; width: 132px; background: url('http://pikabu.ru//images/search_new2.gif') no-repeat top right; border: 0; padding-left: 8px; font: 11px Tahoma; " onfocus="if($(this).val()=='поиск...')$(this).val('')" onblur="if($(this).val()=='') $(this).val('поиск...')"><input type="image" src="http://pikabu.ru/images/search_btn.gif" class="search_btn" value="" >
                        </div>
                      </form>
                    </td>

    Спасибо, за Ваш пример, но я все-равно слабо всё понимаю..

    Вот код поиска на развлекательном сайте

    Какое значение надо указывать в GetElementById ?

    9 июня 2012 г. 14:56
  • Тут я вижу одно поле с идентификатором id="search_menu", если хотите заполнить его, указываете

    HtmlElement element = webBrowser.Document.GetElementById("search_menu");

    9 июня 2012 г. 17:21
    Модератор
  • webBrowser1.Url = new Uri(@"http://pikabu.ru/");            HtmlElement element = webBrowser1.Document.GetElementById("search_menu");            element.SetAttribute("value", "ratata");

    Не работает...

    Что я не так делаю ?

    9 июня 2012 г. 19:50
  • Тут у Вас сайт другой, и названия элементов тоже. Берёте, например мой любимый firebug, и смотрите код элемента формы, щёлкнув на него. Будет примерно следующая картинка

    Ид нашего элемента это id="username6", его и нужно вставить

    HtmlElement element = webBrowser1.Document.GetElementById("username6"); 

    10 июня 2012 г. 5:12
    Модератор
  • <input type="text" onblur="if($(this).val()=='') $(this).val('поиск...')" onfocus="if($(this).val()=='поиск...')$(this).val('')" style="height: 19px; line-height: 19px; vertical-align: top; width: 132px; background: url('http://pikabu.ru//images/search_new2.gif') no-repeat top right; border: 0; padding-left: 8px; font: 11px Tahoma; " value="поиск..." id="search_menu" name="q">

    так вот же код поиска

    как в него вставить что-то и кликнуть на кнопку?

    ---

    P.s. простите, что не был 14 дней, был в отъезде

    24 июня 2012 г. 15:01