以编程方式控制Chrome

11
有没有可能从C#控制和实例化Chrome浏览器?例如打开一个新窗口,更改URL,重新加载标签等。
我已经查找了C# Chrome API,但只能在https://developer.chrome.com/上找到Javascript的API,而在这里找到的最好答案是C# - How to control chrome browser-最好的答案是查看API。
4个回答

9

有一个可用的API用于此。它被称为'Selenium',并具有特定于Chrome的第三方扩展。

http://www.seleniumhq.org/

请查看该链接。


它专门为测试而设计的事实让我失望 - 不仅需要通过一个辅助可执行文件(chromedriver.exe)来控制Chrome,而且在最近的Chrome版本中,屏幕顶部会出现一条警告用户Chrome被自动化测试软件控制的消息。此外,您无法控制已经打开的浏览器。我以为这会很简单... - hello_earth
这不仅仅是为了测试而已。我们在高负载的生产代码中使用Selenium来自动化Chrome。它可以很好地工作,但也可能有些古怪。我的建议是在Chrome控制台中开发,找到你需要的JavaScript命令,然后调用ExecuteScript函数。 - undefined

6

快速在Google上搜索“chrome C# api”可以找到一些结果,我认为您可能想考虑

如果您愿意接受使用Chrome的开发者工具的让步,我认为以下几个链接特别有前途:


谢谢 - 我之前看到了第一个链接,它讲述了WebSocket,所以我保存下来以防没有API。我会查看另外两个链接的,谢谢。 - Sam0

3
你是否正在寻找类似于 CEF Sharp 的东西?它是一个开源项目,允许您将 Chrome 嵌入到您的 .NET 应用程序中。因此,您可以使这些 C# 控件与浏览器进行交互。

如果我们谈论嵌入,我认为这个问题应该受到荣誉提及,因为它涉及许多选项:https://dev59.com/m2Ml5IYBdhLWcg3wyJjz - TernaryTopiary
不是要嵌入Chrome,而是从C#控制Chrome。我能想到的最简单的方法就是使用C#程序作为另一个设备设置URL、刷新选项卡或获取当前URL的门户。C#程序在“幕后”运行。 - Sam0
我们之前有一个类似的应用程序,嵌入Chrome是最好的选择,这样我们就可以刷新选项卡或页面的某些部分(如果需要的话)。祝你好运! - Sunny Patel

0
有没有人尝试过Puppeteer?这里有一篇关于它的文章here(不是特定于C#)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接