如何在.net visual basic中按名称获取元素

时间:2013-09-04 19:21:42

标签: .net vb.net visual-studio-2010

我知道如何使用getelementbyid在visual basic(.net)中通过其ID获取元素。

但是如何通过其name属性获取元素。

e.g。 <input id="123" name="**123**">

如果是这样,我该如何与所述元素互动。

由于

2 个答案:

答案 0 :(得分:1)

再次假设您使用网络浏览器

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click

    'NAVIGATE
    WebBrowser1.Navigate("whereveryourgoing")
    'Waiting for page to load function
    WaitForPageLoad()

    'Get Element by Name
    Dim fb_button As String = String.Empty
    For Each element As HtmlElement In WebBrowser1.Document.All
        If InStr(element.Name, "loginBox") Then
            fb_button = element.Id
            'MsgBox(fb_button & " Found! ")
            'MsgBox(element.InnerHtml.Length.ToString)
            'MsgBox(element.InnerHtml.ToString)
        End If
    Next

    '\/ - Perform Actions
    WebBrowser1.Document.GetElementById(fb_button).SetAttribute("value", Password) 'or InvokeMember("submit") or InvokeMember("click")
    MsgBox("Done")

End Sub

Source

答案 1 :(得分:0)

如果我理解正确,你需要做这样的事情:

            Dim myInput As HtmlInputControl = CType(e.Item.FindControl("123"), HtmlInputControl)

然后使用您刚创建的输入执行操作

            myInput.Enabled = False

OR

您只需将runat="server"添加到元素<input id="123" name="**123**" runat="server">,然后只需引用元素服务器端,只要您引用元素的函数不是共享函数(如果它是共享的,你将需要一个新的类实例来引用它)。

           123.Enabled = False

另外,我不确定你是否只是为了展示这个例子,但如果你在元素名称中使用星号,你可能会遇到一些惊喜,因为它被用作通配符。通常,您希望仅使用数字和字母(加上连字符和下划线)保留属性;)

希望这有帮助。