8

我正在尝试帮助用户使用自定义控件登录他们的帐户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,但不多。

4

2 回答 2

14
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/

于 2013-02-04T06:23:00.683 回答
0

自从发布这个问题以来已经有一段时间了,但我想我会发布一个答案,以便帮助遇到同样情况的人

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 { }
于 2021-08-26T09:29:17.183 回答