Форум программистов, компьютерный форум, киберфорум
Наши страницы
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.92
Antontth
1 / 1 / 0
Регистрация: 05.07.2015
Сообщений: 42
#1

Нажать кнопки в WebBrowser с одним ID - Visual Basic .NET

06.07.2015, 01:25. Просмотров 1896. Ответов 48
Метки нет (Все метки)

Как нажать кнопки в веббраузере c общим ID vb 2008
Тут и ID и Value
как тут нажать сначала "я буду через...",
а потом например "10 мин"
вообще запутался
http://www.cyberforum.ru/vb-net/thread802952.html
0
Миниатюры
Нажать кнопки в WebBrowser с одним ID  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.07.2015, 01:25
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Нажать кнопки в WebBrowser с одним ID (Visual Basic .NET):

Нажать на кнопку в WebBrowser
Знаю подобных тем было оч много. НО! Это не те случаи где можно было кликнуть...

Нажать на кнопку в webbrowser
Доброе время суток.. Проблема в том что есть сайт в котором для регистрации...

Как нажать на кнопку в WebBrowser?
Как отследить кнопку через Xpath в браузере (WebBrowser - расположен на форме)...

Програмно нажать Ctrl+F в WebBrowser
Сломал уже голову и гугль по несколько раз. Незнаю как сделать. В компоненте...

Как нажать на кнопку в WebBrowser?
Понимаю что вопросу уже миллион лет, но вот конкретный пример, хочу войти на...

48
Antontth
1 / 1 / 0
Регистрация: 05.07.2015
Сообщений: 42
17.09.2015, 12:25  [ТС] #41
Вот так выглядет выбор "5 мин"
Я могу прислать адрес сайта, но там мой личный ID.
0
Миниатюры
Нажать кнопки в WebBrowser с одним ID  
diadiavova
3644 / 1232 / 392
Регистрация: 11.04.2015
Сообщений: 2,304
Записей в блоге: 33
17.09.2015, 12:53 #42
Цитата Сообщение от Antontth Посмотреть сообщение
Вот так выглядет выбор "5 мин"
Ну если все, что тебе надо, это вписать в правую панель текст, то это ведь совсем несложно. Другой вопрос, если этим действия не ограничиваются, а есть еще что-то.
1
Antontth
1 / 1 / 0
Регистрация: 05.07.2015
Сообщений: 42
17.09.2015, 13:32  [ТС] #43
Надпись проподает через определенное время,
и сервер распазнает таким образом какой я сделал
выбор.
Если заказ мне дали сразу, то он естественно об этом знает,
а если кто-то нажал кнопку раньше меня, то сервер о моем
решении узнает через опредиленное время, тогда и исчезает надпись "выбрано 5 с.".
Но если я не произвожу выбор в селекте, то через 3-4 заказа - заказы перестают приходить.
То-есть после каждой "отмены" или долгого молчания, я искуственно вызываю (display: block
запрос на заказ, и програмно хочу на него ответить. А не дописать что-то в коде.
0
diadiavova
3644 / 1232 / 392
Регистрация: 11.04.2015
Сообщений: 2,304
Записей в блоге: 33
17.09.2015, 14:13 #44
Значит надо искать функцию-обработчик события (скорей всего change) и вызывать ее. Другой вариант - вообще не заморачиваться на визуальных эффектах, а просмотреть, что отправляет браузер на сервер и генерировать запросы программно.
1
Antontth
1 / 1 / 0
Регистрация: 05.07.2015
Сообщений: 42
17.09.2015, 15:10  [ТС] #45
Я заметил что:
HTML5
1
<div id="proposeHolder"><center><div>Ожидание заказов…<div></div><center></center></div></center></div>
Постоянно находится под наблюдение, каждые 2 сек.
А при выборе "5 мин." имеет код:
HTML5
1
<div id="proposeHolder"><h1> Выбрано 5 с. </h1></div>
И если я вставляю второй код, то через 2 сек. он снова имеет код первого.
Возможно Это разгадка.
Надо как-то програмно менять 1-код на 2-код. В нужный мне момент.
0
diadiavova
3644 / 1232 / 392
Регистрация: 11.04.2015
Сообщений: 2,304
Записей в блоге: 33
17.09.2015, 15:46 #46
Цитата Сообщение от Antontth Посмотреть сообщение
Возможно Это разгадка.
Надо как-то програмно менять 1-код на 2-код. В нужный мне момент.
Вряд ли это разгадка. Поменять не проблема. Найди элемент-контейнер этого кода и присвой его свойству InnerHTML код, который тебе нужен. Но это только на отображение повлияет, а тебе надо запросы на сервер отправлять.
1
Antontth
1 / 1 / 0
Регистрация: 05.07.2015
Сообщений: 42
17.09.2015, 21:47  [ТС] #47
vb.net
1
WebBrowser1.Document.GetElementById("proposeHolder").InnerHtml = "<h1> Выбрано 5 с. </h1>"
То, да не-то.
Когда надо заказы не берутся.

Добавлено через 2 минуты
как примерно это должно выглядеть?

Добавлено через 4 часа 29 минут
Запросы на сервер, для меня слишком сложно.
Я думаю, что найти имитацию нажатия на кнопку с выбором реальнее.

Добавлено через 30 минут
Скажите пожалуйста, а возможно ли в вашей програме,
помимо выбора "5","10","15","20"
что-бы еще устанавливался фокус на выборе.
Если да, то как?
0
diadiavova
3644 / 1232 / 392
Регистрация: 11.04.2015
Сообщений: 2,304
Записей в блоге: 33
17.09.2015, 22:03 #48
Цитата Сообщение от Antontth Посмотреть сообщение
Запросы на сервер, для меня слишком сложно.
Я думаю, что найти имитацию нажатия на кнопку с выбором реальнее.
Это когда как. Бывают очень мудреные страницы, на которых не так просто разобраться что к чему, тем более, что искомый скрипт вообще может быть не просто в другом файле, а, например, в файле, подключаемом динамически. Я уже не говорю о том, что фреймворки иногда бывают такими хитромудрыми, что без ста грамм не разберешься. В то же время запросы промониторить иногда бывает очень просто, хотя там тоже попадаются сложности.
Цитата Сообщение от Antontth Посмотреть сообщение
Скажите пожалуйста, а возможно ли в вашей програме,
помимо выбора "5","10","15","20"
что-бы еще устанавливался фокус на выборе.
Если да, то как?
Смотря что понимать под фокусом на выборе. Если надо, чтобы синеньким было выделено, то фокус надо устанавливать не на опцию, а непосредственно на селект.
vb.net
1
2
3
4
5
6
7
8
    Sub selectValue(value As String)
        Dim opt5 = Aggregate opt As HtmlElement In WebBrowser1.Document.GetElementById("propSelConfirm").GetElementsByTagName("OPTION")
                         Where opt.GetAttribute("value") = value Into FirstOrDefault
 
        If opt5 IsNot Nothing Then opt5.SetAttribute("selected", True)
        opt5.Parent.InvokeMember("focus")
 
    End Sub
В данном случае парент для опции - это как раз и есть селект, но можно через GetElementById или еще как-нибудь получить.
1
Antontth
1 / 1 / 0
Регистрация: 05.07.2015
Сообщений: 42
18.09.2015, 00:35  [ТС] #49
Все огромное спасибо.
Придумал выход.
vb.net
1
2
3
4
5
6
7
8
9
10
11
12
Sub selectValue(value As String)
         TopMost = True
         Me.Activate()
            
        Dim opt5 = Aggregate opt As HtmlElement In WebBrowser1.Document.GetElementById("propSelConfirm").GetElementsByTagName("OPTION")
                         Where opt.GetAttribute("value") = value Into FirstOrDefault
         If opt5 IsNot Nothing Then opt5.SetAttribute("selected", True)
         opt5.Parent.InvokeMember("focus")
         SendKeys.Send(Keys.Enter)
         TopMost = False
         Me.Activate()
    End Sub
В самый раз, когда смотришь кино или читаешь что-то.
0
18.09.2015, 00:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.09.2015, 00:35
Привет! Вот еще темы с решениями:

Программно нажать кнопку в WebBrowser
Как в webbrowser программно нажать одну или несколько кнопко подряд?

Нажать ссылку span class в WebBrowser
В браузере нужно нажать на ссылку IP: &lt;span class=&quot;link link_pseudo_yes...

Как программно нажать на кнопку на сайте в WebBrowser
Я создаю браузер для работы на сайте kolotibablo,для более удобной работы на...

Программно нажать на кнопку на странице webbrowser если у элемента нет ID
&lt;input value= Войти data-l=&quot;t,sign_in type=submit class='button-pro wide’&gt; ==...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru