7 / 7 / 2
Регистрация: 29.04.2009
Сообщений: 411
1

Программная работа с формой на сайте

28.01.2014, 11:32. Показов 1400. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ситуация следующая.
На страничке необходимо выбрать значение в select, и затем нажать результирующую кнопку.
Использую webBrowser и Awesomium (мне не принципиально где, просто пытаюсь и там и там).

Выставляю значение в select так

webBrowser:
C#
1
SetAttribute("selected", "true");
awesomium:
C#
1
2
 string selected = getselect + ".selectedIndex = 1";
 webControl1.ExecuteJavascript(selected);
Значение выставляется. Но дальше, даже ручное нажатие кнопки не приводит к нужным последствиям. При том, что если вручную изменять select, то при нажатии все ок.
Возникает подозрение, что при программном изменении select не происходит событие onchange, в котором на сайте прописана функция.
HTML5
1
onchange="return func(this.form, this, id)"

Подскажите пожалуйста, так ли это? И как решить проблему?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.01.2014, 11:32
Ответы с готовыми решениями:

Программная работа с формой
Добрый день! Создаю внешнюю обработку, в поля которой будут вноситься данные и далее будет...

Программная авторизация на сайте
Всем привет. Заранее прошу прощения за тупые вопросы, только начинаю изучать. Есть маленькая...

Программная авторизация на сайте.
Здравствуйте.Мне нужно программно залогиниться до одного сайта.Уже мучаюсь неделю,застрял на одном...

Программная авторизация на сайте
как сделать программу которая будет регистрировать пользователя на каком нибудь сайте (брать с txt...

6
Заблокирован
28.01.2014, 12:28 2
Возникает подозрение, что при программном изменении select не происходит событие onchange
Можно вызывать функцию func() вручную.

Но дальше, даже ручное нажатие кнопки не приводит к нужным последствиям.
У меня однажды было нечто подобное с WebBrowser'ом. Правда, ручное нажатие - работало.
Попробуйте InvokeMember("submit") и InvokeMember("click").
1
7 / 7 / 2
Регистрация: 29.04.2009
Сообщений: 411
28.01.2014, 15:08  [ТС] 3
Цитата Сообщение от Водяной Змей Посмотреть сообщение
Можно вызывать функцию func() вручную.
Пробовал
C#
1
select.InvokeMember("change");
не помогает.

Цитата Сообщение от Водяной Змей Посмотреть сообщение
Попробуйте InvokeMember("submit") и InvokeMember("click").
InvokeMember("click") тоже не дает никаких результатов.
InvokeMember("submit") - форма отправляется, но не учитывается, что я в select выбрал 1.
0
Заблокирован
28.01.2014, 15:12 4
select.InvokeMember("change");
Читайте внимательнее, что Вам пишут.
Я написал: вызывать функцию func(), а не событие change.
0
7 / 7 / 2
Регистрация: 29.04.2009
Сообщений: 411
28.01.2014, 16:10  [ТС] 5
Водяной Змей, понятно. А не подскажете, как это сделать?
попробовал вот так, без изменений.
C#
1
 select.InvokeMember("return func(this.form, this, " + change_id + ")");
select - HtmlElement, возвращаемый в результате поиска select на странице.
P.S. - пробовал и без return.
0
Заблокирован
28.01.2014, 17:40 6
Используйте
C#
1
webBrowser1.Document.InvokeScript
Я это за пару минут нагуглил, когда вбил в гугл "c# webbrowser call javascript function".
0
7 / 7 / 2
Регистрация: 29.04.2009
Сообщений: 411
29.01.2014, 21:55  [ТС] 7
Сработал вот такой вариант

C#
1
2
3
 
select.Children[1].SetAttribute("selected", "selected");
select.InvokeMember("onchange");
Дальше клик по кнопке работает как положено.
1
29.01.2014, 21:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.01.2014, 21:55
Помогаю со студенческими работами здесь

Программная аутентификация на сайте
Доброго времени суток. Не могу понять как пройти аутентификацию на сайте. Пример дать не могу,...

Программная авторизация на сайте
Существует сайт необходимо написать программу которая будет автоматически вводить логин и пароль...

Программная авторизациия на сайте
Здравствуйте уважаемые форумчане! На досуге возникла проблема в автоматической авторизацией на...

Программная авторизация на сайте, POST-запрос
Ребят, я этим никогда не интересовался, поэтому простите, если вопрос глупый. Не могу программно...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru