【问题标题】:Are there available Chrome APIs for external desktop applications?是否有可用于外部桌面应用程序的 Chrome API?
【发布时间】:2015-09-13 21:59:44
【问题描述】:

我想自动化一个网络流程,它必须使用谷歌浏览器来完成,因为目标网站只适用于特定的 Chrome 扩展程序。

到目前为止,我一直在使用直接在 Chrome 浏览器中运行的简单 javascript 代码。但现在我需要完成更复杂的操作,例如关闭当前窗口、打开另一个 URL、执行不同的脚本……而我能做到的唯一方法是使用外部桌面应用程序。

我的第一次尝试是使用 Visual Studio 并包含一个“基于 Chrome”(WebKit) 的浏览器控件,例如 CefSharp (ChromiumEmbeddedFramework),但它们都不支持安装扩展程序,因此它们对我的目的毫无用处。

我的第二个想法是使用一些 Chrome API 在应用程序之间进行交互,以便我可以读取 html 内容、打开新选项卡或窗口并在合适的时间执行我自己的 javascript 代码。但据我了解,所有提供的 API 都是在 Chrome 扩展内部使用还是由 Chrome OS 使用。这是正确的吗?没有“简单”的方法可以从其他应用程序访问 Chrome?

我的另一个想法是使用 Chrome 的远程调试协议功能,在导航器中打开一个客户端会话并从我的应用程序中对其进行命令。但我不确定它是如何工作的,我认为我不能从我的应用程序中启动新的选项卡或窗口,所以它也不是很有帮助。此外,对于一个更简单的问题来说,这似乎是一个如此复杂的解决方案。

我想出的最后一个想法是直接使用 Chrome 的扩展程序来完成所有工作。问题是我不知道扩展是如何工作的,即使我关闭了我的目标网页,我是否也可以执行它。例如:假设我想关闭浏览器的当前选项卡并在 5 分钟内再次打开它,是否可以通过扩展来实现? 我必须从零开始学习扩展,因为我不知道。

总结一下我的疑惑:

  • 是否有适用于 Windows 桌面应用程序的 Chrome API? (或任何其他方式在 Chrome 和应用程序之间进行交互?)。
  • 您认为远程调试是否适合我的自动化目的。
  • 扩展程序能否完成我期望它完成的所有工作?
  • 您还有其他建议吗?

我希望我已经清楚地解释了自己。我对网络编程不太了解,所以谢谢你的帮助!

最好的问候。

P.S:在另一个论坛上发布这个问题后,我发现了 Chrome 应用程序,它与 Chrome 扩展程序有点不同(是的,我不是 chrome 专家)。我认为 Chrome 应用程序适合我的目的。尽管如此,我必须从零开始学习如何编写它们,而且我不太习惯 Js 语言,所以我更愿意使用用 C# 编写的外部程序进行管理。 关于如何实现这一目标的任何想法?否则我将开始研究如何开发 Chrome 应用程序。

【问题讨论】:

    标签: javascript api google-chrome google-chrome-extension


    【解决方案1】:

    扩展程序能否完成我期望它完成的所有工作?

    如果您不介意用 javascript 编码,那么您可以在没有调试 API 的情况下在扩展程序中完成所有提到的事情。取决于您的自动化过程是否仅包含上述内容,甚至可能更简单。

    官方extension overview 是一个好的/必要的开始。
    并浏览 sample extensions 以获取使用 API 的示例。

    【讨论】:

    • 感谢您的回答。就是这样,我想避免用 javascript 编程,因为我对它没有很好的了解,所以我会更舒服地用 C# 编写主程序。此外,我还必须了解 Chome 应用程序和扩展程序的开发......不过,由于整个过程都是在 Chrome 中完成的,这也是最“优雅”的解决方案。
    猜你喜欢
    • 2015-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-17
    • 2011-08-09
    • 2015-02-20
    相关资源
    最近更新 更多