在WebBrowser控件中设置输入标记的值

本文关键字:输入 设置 WebBrowser 控件 | 更新日期: 2023-09-27 17:57:43

我正试图帮助用户使用自定义WebBrowser控件登录到他们的帐户。我正在尝试使用WebBrowserInvokeScript函数将输入标签的值设置为玩家用户名。然而,我目前的解决方案只是呈现一个空白的白色页面。

我当前的代码如下(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,但没有更多权限。

在WebBrowser控件中设置输入标记的值

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 { }