Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB .NET > VB 2008, WebBrowser, переключение RadioButton


Автор: wildmind 28.10.2009, 00:14
Доброго времени суток
Дано Visual Basic 2008
Необходимо заполнить форму в интернет, сделать это нужно в элементе WebBrowser.
С заполнением полей справился легко, а вот как заставить программу выбрать не первый вариант в RadioButton не понимаю
Есть HTML код:

Код

<tr>            
            <td class="sel"><label><input type="radio" class="radio" name="c" value="2" checked /> вариант1</label></td>
        </tr>
        <tr>
            <td class="sel"><label><input type="radio" class="radio" name="c" value="3"  /> Вариант2</label></td>
        </tr>
        <tr>
            <td class="sel"><label><input type="radio" class="radio" name="c" value="4"  /> Вариант3</label></td>
        </tr>


Вариант1 выбирается просто: WB1.Document.All("c").SetAttribute("checked", "checked")
Вопрос, как выбрать варианты 2 или 3?

Автор: diadiavova 28.10.2009, 00:33
Код

Dim inputs = WB1.Document.GetElementsByTagName("input")

Таким макаром можно ватащить все инпуты, далее обойти коллекцию (циклом или линк-запросом или ещё как - не важно) отобрать инпуты удовлетворяющие условиям и работать с ними.

Автор: wildmind 28.10.2009, 00:51
Цитата(diadiavova @ 28.10.2009,  00:33)
Код

Dim inputs = WB1.Document.GetElementsByTagName("input")

Таким макаром можно ватащить все инпуты, далее обойти коллекцию (циклом или линк-запросом или ещё как - не важно) отобрать инпуты удовлетворяющие условиям и работать с ними.

Огромное спасибо. Делал похоже, но не совсем так. Сейчас все вышло, вот код
Код

Dim inputs = WB1.Document.GetElementsByTagName("input")
        For i = 0 To inputs.Count - 1

            If inputs.Item(i).GetAttribute("value") = "3" Then 'позиция для варианта2
                inputs.Item(i).SetAttribute("checked", "checked")

            End If
        Next

Автор: diadiavova 28.10.2009, 00:55
wildmind, для конкретной страницы может и подойдёт, а вообще инпут - это не только радиобаттоны, поэтому для верности надо хотябы тип проверить, а то если в документе окажется например текстбокс с таким текстом, то данный атрибут установится именно для него, а там просто ничего не значит. Желательно предотвратить все возможные побочные эффекты.

Автор: wildmind 28.10.2009, 01:23
Обязательно доведу до ума, просто я мучился с этими несколькими строчками 4 часа, если не больше, множество форумов перелопатил и у нас и англоязычных, все пусто, либо для VB6, который не работает, а оказалось - дело двух минут smile

Автор: diadiavova 28.10.2009, 01:28
Для эффективной работы с браузером неплохо знать HTML DOM. А вообще, такое ощущение, что сейчас какая-то браузерная эпидемия. И тут и в соседних ветках(шарповских) за последнее время куча вопросов по браузеру.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)