【问题标题】:Getting windows and tabs from a browser从浏览器获取窗口和选项卡
【发布时间】:2015-10-25 06:08:29
【问题描述】:

这是一个非常简单的问题,有几个部分,我不完全确定是否可行。

  1. 选择一个浏览器,任何浏览器。这可以在任何浏览器中完成。我最初的愿望是 Chrome,但它似乎是最不可能工作的。
  2. 它需要有一种方法来区分不同的窗口。
  3. 它需要能够读取给定窗口中所有打开标签的 URL。
  4. 读取浏览器窗口的大小和位置(我已经有这个功能,所以没必要)。

我有一个现有的 Windows 窗体应用程序。理想情况下,我希望它能够打开浏览器窗口并保持对它的某些了解。基本上在文件重新加载后,我希望它能够打开带有选项卡的浏览器窗口,就像它们在保存时一样。我不关心选项卡中的任何信息,所以我真正需要的是能够重新打开已打开的 url,并知道哪个 url 属于哪个窗口以及按哪个顺序。

到目前为止,我已经能够阅读所有打开的选项卡,但我无法区分哪个选项卡属于哪个窗口,所以这并不能正常工作。老实说,除非有某种参考程序集(到目前为止我还没有找到),否则我根本看不到这样做的方法。但是,也许有人知道这样做的方法。

【问题讨论】:

  • 查看 selenium(或任何其他浏览器自动化/测试工具)或更好,但只需托管您自己的浏览器...请注意,在当前状态下,您的帖子对于 SO 来说有点过于宽泛(并且很难缩小范围,因为您实际上没有解释为什么要这样做)。
  • @Amitd 虽然该问题并未说明知道哪个窗口包含哪些选项卡,但如果我使用它,该代码示例看起来很有希望。我会尝试一下,看看我是否可以让它满足我的需求。如果它确实有效,您可以从中得出答案,我很乐意将其标记为正确。
  • @BrandynBaryski 如果你回答你的问题,如果它对你有用的话会更好,因为我的回答只是链接到另一个答案。

标签: c# google-chrome internet-explorer firefox


【解决方案1】:

我对这个问题有点困惑,但我的猜测是您正在开发一个应用程序,并且您希望能够获取所有打开的浏览器窗口,获取每个窗口中打开的选项卡列表,并获取每个打开的标签页的 URL。

每个浏览器都会有所不同,因为每个浏览器的结构都不同,您需要做一些底层的东西/黑客来完成这项工作。

这里有一个关于如何获取打开标签的 URL 的相当完整的答案:How can I get URLs of open pages from Chrome and Firefox?
它涵盖了 IE(问题中)、Firefox、Opera 和 Chrome。

就打开浏览器窗口而言,您可以对 USER32 EnumWindows API 进行一些研究。 http://pinvoke.net/default.aspx/user32.EnumWindows

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-01
    • 2012-03-14
    • 2023-03-21
    • 2012-01-09
    • 1970-01-01
    • 2021-03-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多