在WebBrowser控件中设置输入标记的值
本文关键字:输入 设置 WebBrowser 控件 | 更新日期: 2023-09-27 17:57:43
我正试图帮助用户使用自定义WebBrowser
控件登录到他们的帐户。我正在尝试使用WebBrowser
的InvokeScript
函数将输入标签的值设置为玩家用户名。然而,我目前的解决方案只是呈现一个空白的白色页面。
我当前的代码如下(web是我的WebBrowser
控件的名称):
web.Navigate(CurrentURL, null, @"<script type='text/javascript'>
function SetPlayerData(input) {
username.value = input;
return true;
}
</script>");
web.Navigated += (o, e) =>
{
web.IsScriptEnabled = true;
web.InvokeScript("SetPlayerData", @"test");
};
如前所述,这目前不起作用。我正试图在Windows Phone上做到这一点,所以我在这里和其他地方找到的一些示例将无法工作,因为我无法访问相同的功能。
我将如何成功执行此操作?
编辑:也许我不清楚,但我使用的是Windows Phone,它的API有限,这意味着我无法访问Document
属性和许多其他功能。我确实可以访问InvokeScript
,但没有更多权限。
webBrowser1.Document.GetElementById("navbar_username").InnerText ="Tester";
webBrowser1.Document.GetElementById("navbar_password").InnerText = "xxxxxxxxxxx";
foreach (HtmlElement HtmlElement1 in webBrowser1.Document.Body.All)
{
if (HtmlElement1.GetAttribute("value") == "Log in")
{
HtmlElement1.InvokeMember("click");
break;
}
}
您可以在这里找到更多信息:http://deltahacker.gr/2011/08/15/ftiakste-to-diko-sas-robot/
这个问题发布已经有一段时间了,但我想我会发布一个答案,这样它将帮助遇到同样情况的人
try
{
webBrowser1.Document.GetElementById("navbar_username").SetAttribute("value", "your user");
webBrowser1.Document.GetElementById("navbar_password").SetAttribute("value", "your pass");
webBrowser1.Document.GetElementById("Log in").InvokeMember("click");
}
catch { }