【问题标题】:GetElementById isn't working on certain boxesGetElementById 不适用于某些框
【发布时间】:2014-12-17 08:27:05
【问题描述】:

我正在尝试在我的程序中进行自动登录。

这是我用来查找邮箱然后设置值的代码: WebBrowser1.Document.GetElementById("email").SetAttribute("value,", ID & "@hotmail.com")

如果我检查了电子邮件框的元素,它会显示 input class="textbox" type="email" name="email"

我做错了什么? :L

【问题讨论】:

    标签: vb.net


    【解决方案1】:

    元素不一定要有 ID。

    http://msdn.microsoft.com/en-us/library/system.windows.forms.htmldocument.getelementsbytagname(v=vs.110).aspx

    如果是这种情况,您应该看看通过 GetElementsByTagName 获取集合并进行循环 - 类似于以下内容:

    Dim Elems As HtmlElementCollection 
    
    Elems = WebBrowser1.Document.GetElementsByTagName("input")
    
    For Each elem As HtmlElement In Elems
       Dim nameValue As String = elem.GetAttribute("name")
          If nameValue.ToLower().Equals("email") Then 
              elem.SetAttribute("value,", ID & "@hotmail.com")
          End If 
    Next 
    

    【讨论】:

    • 感谢您的回复。我不确定该代码应该做什么,但我尝试过它并没有做任何事情。我将名称和输入以及所有这些字符串更改为“电子邮件”,但它也没有做任何事情。我对 VB.NET 很陌生,所以我不太了解...
    【解决方案2】:

    引用 id 而不是 name。即“email_ema”而不是“email”

    input name="email" type="button" id="email_ema" value="+" style="display:None;"...

    WebBrowser1.Document.GetElementById("email_ema").SetAttribute("value,", ID & "@hotmail.com")
    

    【讨论】:

    • 感谢您的回复!我如何找到某物的 ID?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-26
    • 2021-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多