【问题标题】:How to get element by name in .net visual basic如何在.net visual basic中按名称获取元素
【发布时间】:2013-09-04 19:21:41
【问题描述】:

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

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

例如<input id="123" name="**123**">

如果是这样,我如何与所述元素进行交互。

谢谢

【问题讨论】:

  • 你的意思是javascript的getElementsByName()吗?
  • 您是要获取上面提到的标准 HTML 元素还是 .NET 控件?使用 .NET 控件,您需要在脚本块中使用 ClientID(来自服务器端)。

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


【解决方案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

【讨论】:

  • 另外,您能解释一下 GetElementsByName("NAME") 部分的作用吗?谢谢
  • 以上更新让我知道是否有帮助。
  • 谢谢,我不太确定元素。少量。这是什么东西的缩写吗?
  • 这是您在 Visual Studio 中实际编写的内容。希望这是最清楚的!请注意WaitForPageLoad 是它自己的方法,而不是 Webbrowswer1.navigation 的一部分,这是示例代码,需要针对您正在自动化的网页进行调整
  • 此外,此代码适用于 foreach 循环中的任何 xml 文档(只需删除 webbrowswer 对象并将其替换为 xml 文件/文档),并删除与 webbrowswer 相关的导航和其他代码部分.
【解决方案2】:

如果我对您的理解正确,您将需要执行以下操作:

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

然后用你刚刚创建的输入做一些事情

            myInput.Enabled = False

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

           123.Enabled = False

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

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-07
    • 1970-01-01
    相关资源
    最近更新 更多