C# 在C Web浏览器中自动化Google地图(正确执行javascript的问题)
不使用API 我目前正在尝试使用C语言的web浏览器加载google地图并自动关注我的当前位置,但是,由于某些原因,我无法使其正常工作。这个想法很简单。加载Google maps,然后执行脚本以关注我的当前位置: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
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上起作用
请参阅:尝试了这一点,在开始时编写了一些代码来为应用程序添加密钥,但是程序仍然没有执行脚本,或者可能执行了,并且脚本没有执行任何操作,因此仍然无法运行。不知道是什么原因造成的。