Элементы DOM не имеют атрибута ID, но у них установлены атрибуты имени. Это немного усложняет задачу, так как вам придется запрашивать элементы документа немного по-другому, но это все же достижимо. Попробуйте выполнить следующее:
Dim emailInput As HtmlElement = WebBrowser1.Document.GetElementsByTagName("input").GetElementsByName("email").FirstOrDefault()
Dim passwordInput As HtmlElement = WebBrowser1.Document.GetElementsByTagName("input").GetElementsByName("password").FirstOrDefault()
If (emailInput IsNot Nothing) Then
emailInput.SetAttribute("value", TextBox1.Text)
End If
if (passwordInput IsNot Nothing) Then
passwordInput.SetAttribute("value", TextBox2.Text)
End If
Этот код пытается получить первый элемент ввода с именем email, а также первый элемент ввода с именем password. Если элемент был найден, он устанавливает атрибут для соответствующего текста TextBox.
Вы заметите, что я удалил .ToString()
из свойства Text. Это потому, что свойство Text возвращает String, и поэтому вы конвертировали String ... в String.
Обновление
Мои извинения, я сделал не понимаю, что HtmlElementCollection не поддерживает FirstOrDefault. Вам нужно будет немного изменить код:
Dim emailInputs As HtmlElementCollection = WebBrowser1.Document.GetElementsByTagName("input").GetElementsByName("email")
Dim passwordInputs As HtmlElementCollection = WebBrowser1.Document.GetElementsByTagName("input").GetElementsByName("password")
If (emailInputs.Count() > 0) Then
Dim emailInput As HtmlElement = emailInputs.Item(0)
emailInput.SetAttribute("value", TextBox1.Text)
End If
If (passwordInputs.Count() > 0) Then
Dim passwordInput As HtmlElement = emailInputs.Item(0)
passwordInput.SetAttribute("value", TextBox2.Text)
End If