WebBrowser заполнение формы содержащей Ajax - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день! Не уверен в той ветке пишу или нет поэтому не серчайте. Проблема следцющая, я хочу написать програмку которая будет размещать товар в прайсе на сайте Сландо(slando.ua) и все бы зорошо но не тем есть выбор категории, который использует ajax, и после выбора категории он выводит форму для стоимости либо еще добавляет форму типа "Имя поизводителя". Подскажите как можно побороть это? Я пробовал 2-мя способами:
            _WebBrowser.Document.GetElementById("category-container").SetAttribute("value", "64");
            foreach (HtmlElement tag in _WebBrowser.Document.GetElementsByTagName("input"))
            {
                var price = tag.GetAttribute("name");
                if (price == "data[param_price][1]")
                {
                    tag.SetAttribute("value", "120");
                }
            }
 
            _WebBrowser.Document.GetElementById("id_private_business").SetAttribute("value", "private");
Что не сработало, и не удивительно, названия елеметноя я при помощи оперы узнал, но они скорее всего формируются только после выбора категории... 8( Вторым способом я просто пытался отправить пост запрос ...
 string postData = "-----------------------------7dd48c506be" + Environment.NewLine +
                              "Content-Disposition: form-data; name=\"data[title]\"" + Environment.NewLine +
                              "Hello world" + Environment.NewLine +
                              "-----------------------------7dd48c506be" + Environment.NewLine +
                              "Content-Disposition: form-data; name=\"data[category_id]\"" + Environment.NewLine +
                              "78" + Environment.NewLine +
                              "-----------------------------7dd48c506be" + Environment.NewLine +
                              "Content-Disposition: form-data; name=\"data[offer_seek]\"" + Environment.NewLine +
                              "-----------------------------7dd48c506be" + Environment.NewLine +
                              "Content-Disposition: form-data; name=\"data[param_price][0]\"" + Environment.NewLine +
                              "price" + Environment.NewLine +
                              "-----------------------------7dd48c506be" + Environment.NewLine +
                              "Content-Disposition: form-data; name=\"data[param_price][1]" + Environment.NewLine +
                              "34234" + Environment.NewLine +
...

 byte[] Bytes = Encoding.UTF8.GetBytes(postData);
            string AdditionalHeaders = "Content-Type: multipart/form-data; boundary=---------------------------7dd48c506be" + Environment.NewLine;
            _WebBrowser.Navigate("http://slando.ua/post-new-ad", "", Bytes, AdditionalHeaders);
... на что у меня тоже ничего не вышло, Fiddler вернул 404 ошибку, не пойму в чем может быть проблема 8( Под спойлером спрятаны шапки пост запросов:
Запрос который создается в ручную в браузере:
POST http://slando.ua/post-new-ad/ HTTP/1.1 Accept: text/html, application/xhtml+xml, */* Referer: http://slando.ua/post-new-ad/ Accept-Language: en-US,en;q=0.8,ru;q=0.5,uk;q=0.3 User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0) Content-Type: multipart/form-data; boundary=---------------------------7ddec1542079a Accept-Encoding: gzip, deflate Connection: Keep-Alive Content-Length: 3734 DNT: 1 Host: slando.ua Pragma: no-cache Cookie: __utma=143612394.498095220.1359299073.1359299073.1359299073.1; __utmz=143612394.1359299073.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utmb=143612394.31.9.1359301041153; PHPSESSID=lllqd08qi4jchgjlnudamaehk3; __utmc=143612394 -----------------------------7ddec1542079a Content-Disposition: form-data; name="data[title]" Шапка -----------------------------7ddec1542079a Content-Disposition: form-data; name="data[category_id]" 85 -----------------------------7ddec1542079a Content-Disposition: form-data; name="data[offer_seek]" -----------------------------7ddec1542079a Content-Disposition: form-data; name="data[param_price][0]" price -----------------------------7ddec1542079a Content-Disposition: form-data; name="data[param_price][1]" 879 -----------------------------7ddec1542079a Content-Disposition: form-data; name="data[param_price][currency]" UAH -----------------------------7ddec1542079a Content-Disposition: form-data; name="data[param_currency]" UAH -----------------------------7ddec1542079a Content-Disposition: form-data; name="data[param_mobile_phone_manufacturer]" 2064 -----------------------------7ddec1542079a Content-Disposition: form-data; name="data[private_business]" private ...
Запрос отсылаемый программой:
POST http://slando.ua/post-new-ad/ HTTP/1.1 Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, */* Accept-Language: en-US,en;q=0.8,ru;q=0.5,uk;q=0.3 Content-Type: multipart/form-data; boundary=---------------------------7dd48c506be Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.2; WOW64; Trident/6.0; .NET4.0E; .NET4.0C; Media Center PC 6.0; InfoPath.3; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729) Connection: Keep-Alive Content-Length: 3864 Host: slando.ua Pragma: no-cache Cookie: __utma=143612394.221689840.1358954510.1359297575.1359301257.7; __utmb=143612394.5.10.1359301257; __utmz=143612394.1358954510.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); remember_me=547ed832Eq9k0rjjJUs%3D; PHPSESSID=7aooasl0mu08qjahfc3uf0g000; __utmc=143612394 -----------------------------7dd48c506be Content-Disposition: form-data; name="data[title]" Hello world -----------------------------7dd48c506be Content-Disposition: form-data; name="data[category_id]" 78 -----------------------------7dd48c506be Content-Disposition: form-data; name="data[offer_seek]" -----------------------------7dd48c506be Content-Disposition: form-data; name="data[param_price][0]" price ...

Решение задачи: «WebBrowser заполнение формы содержащей Ajax»

textual
Листинг программы
 string str = "<div class=\"fblock clr\" id=\"parameter-div-price\"><div class=\"fleft label tright\">" +
            "<label class=\"fbold c000\" for=\"parameter-price\">Цена<span class=\"cc914\">*</span></label>" +
                         "</div><div class=\"area clr\">" +
                         "<div class=\"fleft rel focusbox\">" +
...                       
 
                         "</div></div></div></div>";
           
 
  _WebBrowser.Document.GetElementById("choose-category-button").InnerHtml = str;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.875 из 5