Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.89/35: Рейтинг темы: голосов - 35, средняя оценка - 4.89
26 / 26 / 4
Регистрация: 20.07.2012
Сообщений: 399
Записей в блоге: 1

Заполнение полей на сайте

07.03.2016, 13:28. Показов 6759. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.
Имеются пару форм на странице.
нужно их заполнить, если я знаю:
HTML5
1
<div id="email_r" class="fv-err">
HTML5
1
<div id="remail_r" class="fv-tw "></div></div></div>
HTML5
1
<div id="PASSWORD_r" class="fv-tw ">
HTML5
1
<div id="firstname_r" class="fv-tw ">
HTML5
1
<div id="lastname_r" class="fv-tw ">
В какую сторону нужно идти?
На сайте есть АПИ , но регистрация вырезана.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.03.2016, 13:28
Ответы с готовыми решениями:

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

Заполнение полей класса
Всем привет, речь идет об обновлений строк бд в проекте LinqToSQL. Т.е. есть сама база и обертка над ней, для упрощения работы, проблемное...

Заполнение полей класса из файла
Имеется класс. Необходимо считать значения из файла и просвоить каждому конкретному полю (образец файла в конце). delegate void...

25
 Аватар для Евгений89
102 / 102 / 39
Регистрация: 17.04.2011
Сообщений: 554
07.03.2016, 15:23
Если заполнение полей после авторизации, то используй Session
0
26 / 26 / 4
Регистрация: 20.07.2012
Сообщений: 399
Записей в блоге: 1
07.03.2016, 15:43  [ТС]
Нужно имитировать человека , ввести данные в поля , затем послать enter либо просто нажать кнопку "регистрация"
0
 Аватар для Евгений89
102 / 102 / 39
Регистрация: 17.04.2011
Сообщений: 554
07.03.2016, 15:48
В чем тогда проблема, напиши регистрацию.
0
26 / 26 / 4
Регистрация: 20.07.2012
Сообщений: 399
Записей в блоге: 1
07.03.2016, 15:56  [ТС]
Или лучшим выходом будет обратиться к Watin
0
 Аватар для Евгений89
102 / 102 / 39
Регистрация: 17.04.2011
Сообщений: 554
07.03.2016, 15:56
Из html формы или aspx обращаешься на сервер к в файлу cs. Там выполняешь проверку на введенные данный и производишь манипуляции с БД.
Если это html оборачиваешь теги в
C#
1
<%<div id="email_r" class="fv-err">%>
0
18 / 18 / 14
Регистрация: 02.01.2015
Сообщений: 78
07.03.2016, 18:07
Html Agility Pack подойдет.
0
9945 / 2946 / 496
Регистрация: 05.10.2013
Сообщений: 8,016
Записей в блоге: 241
07.03.2016, 19:57
HPB, вы хотите сделать, что показано в этом коротком туторе?

C# Beginners Tutorial - 107 - WebBrowser Control pt 3

0
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
07.03.2016, 20:04
HPB, если там скрипты, и нельзя сделать на чистом HTTP, то берете Awesomium и скриптами все жмете.

Добавлено через 3 минуты
Пример
0
9 / 9 / 7
Регистрация: 01.03.2015
Сообщений: 182
07.03.2016, 20:10
просто отправьте запросы, такие как они хотят
0
9945 / 2946 / 496
Регистрация: 05.10.2013
Сообщений: 8,016
Записей в блоге: 241
07.03.2016, 20:59
А то что я привёл видео-пример выше не будет работать для регистрации?
0
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
07.03.2016, 21:13
8Observer8, в твоем примере происходит примерно то же самое, о чем говорю я(заполнения javascriptom), только с глючным стандартным веббраузером. Awesomium под это заточен гораздо лучше. Кроме того, я лично абсолютно не представляю, как можно учиться программированию по видео, это ведь ужасающе неудобно
1
9945 / 2946 / 496
Регистрация: 05.10.2013
Сообщений: 8,016
Записей в блоге: 241
07.03.2016, 21:38
Цитата Сообщение от EvilFromHell Посмотреть сообщение
как можно учиться программированию по видео, это ведь ужасающе неудобно
Я учусь в основном по книжкам. Просто ещё есть куча видео курсов, которыми я тоже не брезгую. Я из них код переписываю, чтобы потом по видео не искать.

Почему когда я нажимаю на кнопке Inspect Element в Хроме, то у неё нет ID?

Добавлено через 1 минуту
Я имею ввиду кнопку "Вход" на cyberforum.ru
0
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
07.03.2016, 21:40
8Observer8, это надо спрашивать а тех, кто писал данный сайт. Все эти аттрибуты не являются обязательным. Иногда нужную кнопку приходится искать по косвенным признакам.

Добавлено через 1 минуту
Кстати как логиниться на киберфоруме я постил тут. Только там напрямую через HTTP.
1
9945 / 2946 / 496
Регистрация: 05.10.2013
Сообщений: 8,016
Записей в блоге: 241
07.03.2016, 21:40
EvilFromHell,
Как мне получить эту кнопку вызовом:
C#
1
webBrowser1.Document.GetElementById("долшен быть Id").InvokeMember("Click");
0
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
07.03.2016, 22:06
8Observer8, getElementById-не единственный метод для поиска чего-либо в DOM. Там их несколько, getElementsByTagName, getElementsByClassName и тд. А если эти методы не катят-то можно в цикле перебрать ноды и искать, допустим, что-то в свойстве value. Главное-найти, что в данной кнопке уникально, чтобы однозначно ее определить.

Добавлено через 20 минут
8Observer8, набросал код с использованием авесомиума, который нажмет на указанную вами кнопку:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Awesomium.Core;
using Awesomium.Windows.Forms;
namespace WindowsFormsApplication52
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private async void button1_Click(object sender, EventArgs e)
        {
            webControl1.Source = "https://www.cyberforum.ru/".ToUri();
            await webControl1.WaitForLoadingComplete();
            using (dynamic document = (JSObject)webControl1.ExecuteJavascriptWithResult("document"))
            {
                var buttons = document.getElementsByClassName("button");
                for(int i=0;i<buttons.length;i++)
                {
                        if (buttons[i].value == "Вход") {
                            buttons[i].click(); break; }
                }
            }
        }
 
    }
    static class WVExtesions
    {
        public static Task WaitForLoadingComplete(this IWebView wv)
        {
            var tcs = new TaskCompletionSource<bool>();
            FrameEventHandler handler = ((sender, e) =>
            {
                if (!(sender as IWebView).IsLoading)
                {
                    tcs.TrySetResult(true);
                }
            }
            );
            wv.LoadingFrameComplete += handler;
            tcs.Task.ContinueWith(_ =>
            {
                wv.LoadingFrameComplete -= handler;
            }, TaskContinuationOptions.ExecuteSynchronously);
            return tcs.Task;
        }
    }
}
2
9945 / 2946 / 496
Регистрация: 05.10.2013
Сообщений: 8,016
Записей в блоге: 241
07.03.2016, 23:44
EvilFromHell, кстати, можно кликнуть правой кнопкой мыши в исходниках и выбрать "Organize Usings" -> "Remove Unused Usings"

У меня поля Email и Password инициализируются моими значениями, но при выполнении "item.InvokeMember("Сlick");" экран окна просто становится белым и ничего дальше не происходит:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
using System.Windows.Forms;
 
namespace CyberForumLogIn
{
    public partial class Form1 : Form
    {
        private bool documentCompleted = false;
 
        public Form1()
        {
            InitializeComponent();
 
            webBrowser1.ScriptErrorsSuppressed = true;
 
            webBrowser1.DocumentCompleted += webBrowser1_DocumentCompleted;
        }
 
        void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            if (!documentCompleted)
            {
                documentCompleted = true;
                HtmlElement email = webBrowser1.Document.GetElementById("navbar_username");
                HtmlElement password = webBrowser1.Document.GetElementById("navbar_password");
 
                email.InnerText = "email";
                password.InnerText = "pass";
 
                HtmlElementCollection inputs = webBrowser1.Document.GetElementsByTagName("input");
                foreach (HtmlElement item in inputs)
                {
                    string attr = item.GetAttribute("value");
                    if (attr == "Вход")
                    {
                        item.InvokeMember("Сlick");
                        break;
                    }
                }
            }
        }
    }
}
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
07.03.2016, 23:47
Для работы с сайтами нет никакого смысла парсить ДОМ и все прочее, т.к. он нахрен не нужен Нужно просто посылать HTTP запросы, какие нужно. Текст запроса смотрим в любом сниффере и эмулируем их на шарпе. Быстро, удобно, безглючно
1
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
08.03.2016, 00:01
Psilon, пример запроса я уже привел выше. Просто нередки ситуации, когда параметры для правильного запроса достать крайне пробелематично. Например, был у меня проект, где надо было автоматом проходить тесты на одном сайте. Тесты состоят из обфусцированного джаваскрипта больших размеров, в котором ничего разобрать абсолютно невозможно. Гораздо проще их покликать через давижок от браузера, чем заморачиваться разобором данных скриптов.
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
08.03.2016, 00:03
EvilFromHell, согласись, что таких сайтов все же меньшинство А больше 99% либо удобно эмулируются запросами, либо имеют специальное АПИ для программного доступа (на примере ВК). А совет естественно дается для подавляющего большинства задач. Я не думаю, например, что тут есть подобное.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.03.2016, 00:03
Помогаю со студенческими работами здесь

Заполнение полей Логин и Пароль
есть код webBrowser1.Navigate(&quot;https://login.aliexpress.com&quot;); // логин try { ...

Заполнение полей в WebBrowser Подскажите!
Доброго времени суток! Такая проблема возникла: Нужно что б прога открыла Excel файл! И то что нужно вбыть в Excel-е закинуло в строки в...

Заполнение полей на сайте
Делаю по следующему примеру: void __fastcall TForm1::FillForm(String Name, String Data){ // заполнение поля на форме. Name - имя...

Заполнение полей на сайте
Как в Builder 6 c++, программно написать что-нибудь в текстовой строчке на сайте? Например: есть сайт. При нажатии на кнопку в то...

Авторизация на сайте. Автоматическое заполнение web полей
Здравствуйте, видел уже много подобных тем, но ответ всё же не нашёл. Задача: заполнить поле на web сайте нажатием кнопки. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru