如何在网站上登录?密码为不接受的值

时间:2014-01-28 16:57:34

标签: vb.net login passwords

我看过很多关于如何使用vb登录网站的例子。但不知何故,它一直说密码不正确。

让我解释一下: 我正在尝试使用vb登录此网站。我已设法使用

填写用户名和密码
wb1.Document.GetElementById("Username").SetAttribute("Value", "myusername")
wb1.Document.GetElementById("Password").SetAttribute("Value", "mypassword")

我可以看到它们被填写,但点击登录按钮后,密码输入不正确。当我尝试手动填写密码(按程序用户名)并单击按钮它确实有效。 两个实例之间的区别?当我手动操作时,我输入的字母变为圆点。但是,当我通过我的程序这样做时,字母不会改变,但仍然是字母。我认为这是问题的一部分,但我不完全确定。

我也试图从元素密码中更改其他项目,例如OuterHTML。我手动输入密码时可以看到哪些项目已经调整。然后我使用了这些值。这没用。但话说回来,很难看出究竟发生了什么变化,所以也许我错过了一些东西。

我在做的时候注意到的一件事是当我手动输入密码时,值已更改为“”。我应该将密码放在不同的属性中吗?我猜密码应该发送到服务器编码?

这是网站上密码字段的代码

<div class="jNiceInputWrapper jNiceSafari FieldPosition col2">
    <div class="jNiceInputInner">
        <input type="password" name="Password" id="Password" class="jNiceInput" placeholder="Wachtwoord" onkeypress="return SubmitOnEnter(this,event)" />
    </div>
</div>

我真的希望有人可以帮我解决这个问题。我一整天都在努力,只是想不出来。

编辑: 感谢CoDeXeR先生,我终于明白了! 解决问题的代码:

wb1.Document.All("Username").SetAttribute("value", "myusername")
wb1.Document.All("Password").SetAttribute("value", "mypassword")

Dim elements As HtmlElementCollection = (wb1.Document.All.GetElementsByName("Password"))
For Each element As HtmlElement In elements
     element.InnerText = "mypassword"
Next

删除setattribute值或innertext会导致失败。

1 个答案:

答案 0 :(得分:1)

试试这个,不要使用GetElementsByID,而是使用Document.All。你想将元素的name属性值传递给all,你可能只是缺少其中的一些......

 wB1.Document.All("Username").SetAttribute("value", Username)
 wB1.Document.All("Password").SetAttribute("value", Password)

让我知道这对您有何影响

修改

看了这个,我们不能使用我们尝试的方式,因为它是一个蒙面输入。相反,我们可以遍历文档并设置该元素的内部文本......

  ' Loop through elements until the element is found
    Dim elements As HtmlElementCollection = wB1.Document.All.GetElementsByName("Password")
    For Each element As HtmlElement In elements
        element.InnerText = "your password"
    Next