我有一个程序,我创造了工作,跟踪信息。我们从各种内部网站获取这些信息。我希望在我的程序中包含一个表单,该表单本质上是一个定制的Web浏览器,可让我更轻松地浏览这些网站。这是一个学习项目,请原谅我的经验。登录到网页上的按钮点击网页浏览器控制
对于这个问题,我正在寻找一种方式来加载浏览器控件的页面后,我可以从存储在字符串中的凭据登录到该页面。我没有访问该网站的HTML代码我试图输入这些信息,并已经看到很多关于如何通过GetElementId做到这一点的教程,但是在使用Firebug之后,我发现我需要输入的两个文本框都没有一个ID(我可以看到)。该网站永远不会改变,我确实考虑过使用GetElementFromPoint,但不知道如何以这种方式去做,看起来并不理想。 GetElementsByTagName似乎是解决这个问题的最佳方式,但我不确定如何实现代码。
这里是我能从萤火虫得到的两个元素的信息。
用户名文本框: <input type="text" name="j_username" size="12" onblur="this.value=this.value.toLowerCase(); setUserIdCookie();" click="this.value=this.value.toLowerCase();" onkeyup="this.value=this.value.toLowerCase();">
密码文本框:
<input type="password" onkeypress="checkCapsLock(event)" name="j_password" size="12">
,所以我需要从我的WinForm的usernameString
passwordString
传递到例如为j_username,然后到为j_password,然后单击内<input type="submit" name="submit" value="Login">
按钮网络控制。如果我可以从这个网站了解如何解决这个问题,我应该可以从中学到足够的知识以在其他网站上实施。
在此先感谢您的帮助,请让我知道是否需要任何其他信息。
完整的HTML代码:
<form method="POST"action="j_security_check" name="login">
<table border="0"width="30%"cellspacing="3"cellpadding="2">
<tr>
<td class="default"><b>Login</b></td>
<td class="default"><input onkeyup="this.value=this.value.toLowerCase();"
click="this.value=this.value.toLowerCase();"
onblur="this.value=this.value.toLowerCase(); setUserIdCookie();"
type="text"size="12" name="j_username"></td>
</tr>
<tr>
<td class="default"><b>Password</b></td>
<td class="default"><input type="password" size="12"
name="j_password"onKeyPress="checkCapsLock(event)"></td>
</tr>
<tr>
<td colspan="2" align="center"><p class="default">
<inputtype="submit"value="Login"name="submit"></td>
</tr>
</table>
</form>
编辑
我已经找到一种方法来输入到箱子
var x = webBrowser1.Document.All.GetElementsByName("j_username");
x[0].InnerText = (usernameString);
var y = webBrowser1.Document.All.GetElementsByName("j_password");
y[0].InnerText = (passwordString);
但我有麻烦搞清楚如何点击登录按钮
当您尝试访问登录按钮时,您会看到哪些选项? – Brian
我发现当然在发布这个哈哈感谢回复虽然 – Nabbic