C# 在C Web浏览器中自动化Google地图(正确执行javascript的问题)

C# 在C Web浏览器中自动化Google地图(正确执行javascript的问题),c#,javascript,html,google-maps,automation,C#,Javascript,Html,Google Maps,Automation,不使用API 我目前正在尝试使用C语言的web浏览器加载google地图并自动关注我的当前位置,但是,由于某些原因,我无法使其正常工作。这个想法很简单。加载Google maps,然后执行脚本以关注我的当前位置: mapBrowser.Document.InvokeScript("mylocation.onButtonClick"); 或者,通过HtmlElement调用按钮单击: HtmlElement myLocationButton = mapBrowser.Document.GetEl

不使用API

我目前正在尝试使用C语言的web浏览器加载google地图并自动关注我的当前位置,但是,由于某些原因,我无法使其正常工作。这个想法很简单。加载Google maps,然后执行脚本以关注我的当前位置:

mapBrowser.Document.InvokeScript("mylocation.onButtonClick");
或者,通过HtmlElement调用按钮单击:

HtmlElement myLocationButton = mapBrowser.Document.GetElementById("mylocation");
myLocationButton.InvokeMember("click");
但是,当然,这两种方法都不能正确工作,返回的坐标不相关,地图也不会真正聚焦。关于如何正确解决这个问题,有什么想法吗?在实际加载文档之前,不会调用脚本:

private void mapBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
        if(mapBrowser.Url.ToString() == "https://www.google.com/maps/preview/")
        {
            try
            {
                //HtmlElement myLocationButton = mapBrowser.Document.GetElementById("mylocation");
                //myLocationButton.InvokeMember("click");
                mapBrowser.Document.InvokeScript("mylocation.onButtonClick");
                //mapBrowser.Document.InvokeScript("focus:mylocation.main");
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error Invoking Script: " + ex.Message);
            }
        }
    }
所以我不认为这是我问题的原因。更令人沮丧的是,如果我手动点击按钮,自动对焦效果很好

非常感谢您的帮助,谢谢


请注意,您可能必须进入IE并允许Google maps访问您的位置,以便正确复制此问题

我有几次遇到问题,WebBrowser控件使用的IE版本太旧。您需要修改注册表以使其使用更新版本的IE。 我尝试了IE8和IE9,但它给了我一个错误,但它在IE10上起作用


请参阅:

尝试了这一点,在开始时编写了一些代码来为应用程序添加密钥,但是程序仍然没有执行脚本,或者可能执行了,并且脚本没有执行任何操作,因此仍然无法运行。不知道是什么原因造成的。