我正在尝试使用自定义WebBrowser控件帮助用户登录其帐户。我正在尝试使用WebBrowserInvokeScript函数将输入标签的值设置为玩家用户名。但是,我当前的解决方案除了渲染空白的白纸外什么也不做。

我当前的代码如下所示(网络是我的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的可用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/

关于c# - 在WebBrowser控件中设置输入标签的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14681335/

10-17 02:12