我已经来过这里:
我知道有很多关于这个话题的问题,但是他们都没有正确回答。我很好奇如何获取firefox中所有打开页面的URL,但我找不到提供工作代码的解决方案。
这是互联网上获奖最多的解决方案,但它对我不起作用。 此代码使用DDE(使用NDDE - .NET的一个很好的DDE包装器):
private string GetBrowserURL(string browser)
{
try
{
DdeClient dde = new DdeClient(browser, "WWW_GetWindowInfo");
dde.Connect();
string url = dde.Request("URL", int.MaxValue);
string[] text = url.Split(new string[] { "\",\"" }, StringSplitOptions.RemoveEmptyEntries);
dde.Disconnect();
return text[0].Substring(1);
}
catch
{
return null;
}
}
我不关心它是否显示历史记录,在第二个Firefox窗口中获取打开页面的URL,我想现在保持简单。请不要为我提供其他浏览器的代码,因为它总是特定于浏览器或任何VB代码。
答案 0 :(得分:-2)
即使您使用Firefox> 49:
System.Windows.Automation.AutomationElement AutomationElement = System.Windows.Automation.AutomationElement.FromHandle(ptr);
System.Windows.Automation.AutomationElement Elm = AutomationElement.FindFirst(TreeScope.Descendants, new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Document));
System.Windows.Automation.AutomationPattern[] BAutomationPattern = Elm.GetSupportedPatterns();
System.Windows.Automation.ValuePattern BValuePattern = (System.Windows.Automation.ValuePattern)Elm.GetCurrentPattern(BAutomationPattern[0]);
CurrentUrlName = BValuePattern.Current.Value.ToString();