c# – 如何在.NET中使用MasterDevs ChromeDevTools?

c# – 如何在.NET中使用MasterDevs ChromeDevTools?,第1张

概述MasterDevs ChromeDevTools是一个与Chrome开发者工具交互的.NET库,昨天我在搜索使用chrome websockets协议的有效和最简单的方法时发现它,我试图管理如何编译自定义javascript脚本控制台窗口,但我没有找到这样做的方法,因为库是巨大的,每个成员的XML文档非常非常非常差,所以你无法理解任何成员的目的,并且作者只提供了一个很小的用法示例,说明如何使用l MasterDevs ChromeDevTools是一个与Chrome开发者工具交互的.NET库,昨天我在搜索使用Chrome websockets协议的有效和最简单的方法时发现它,我试图管理如何编译自定义JavaScript脚本控制台窗口,但我没有找到这样做的方法,因为库是巨大的,每个成员的XML文档非常非常非常差,所以你无法理解任何成员的目的,并且作者只提供了一个很小的用法示例,说明如何使用lib中数千个commad的两个特定命令.因此,我不知道如何使用此库与控制台交互,在控制台窗口中输入脚本并进行编译.

所以我对这个库是盲目的,Runtime,Debugger或Console的官方谷歌文档也没有帮助我找到在控制台窗口中编译脚本的方法……

我只想在控制台窗口中自动插入Js脚本,并执行它,如下所示:

我尝试使用Chrome.Runtime.EnableCommand类,然后使用Chrome.Runtime.CompileScriptCommand,但是当我尝试获取生成的CommandResponse< Chrome.Runtime.CompileScriptCommandResponse>时,没有任何反应.调用和等待IChromeSession.SendAsync()函数时的对象(我从未得到过).

我也尝试了相同但使用Chrome.DeBUGger.EnableCommand类和Chrome.DeBUGger.SetScriptSourceCommand,只是尝试尝试实验,因为我不知道我应该在这个库中使用什么成员.

好吧,为了展示我在库中尝试的内容,在VB.NET中,我只是从GitHub中获取了C#MasterDevs用法示例,并尝试找到编译脚本的正确命令:

imports MasterDevs.ChromeDevToolsimports MasterDevs.ChromeDevTools.ProtocolTask.Run(    Async Sub()        Dim ChromeProcessFactory = New ChromeProcessFactory(New StubbornDirectoryCleaner())        Using ChromeProcess As IChromeProcess = ChromeProcessFactory.Create(9222,True)            Dim sessionInfo As ChromeSessionInfo = (ChromeProcess.GetSessionInfo().Result).LastOrDefault()            Dim ChromeSessionFactory = New ChromeSessionFactory()            Dim ChromeSession = ChromeSessionFactory.Create(sessionInfo.WebSocketDeBUGgerUrl)            Dim runtimeEnable As New Chrome.Runtime.EnableCommand            Dim runtimeEnableResponse As CommandResponse(Of Chrome.Runtime.EnableCommandResponse) =                Await ChromeSession.SendAsync(runtimeEnable)            Dim deBUGgerEnable As New Chrome.DeBUGger.EnableCommand            Dim deBUGgerEnableResponse As CommandResponse(Of Chrome.DeBUGger.EnableCommandResponse) =                Await ChromeSession.SendAsync(deBUGgerEnable)            Dim compileScript As New Chrome.Runtime.CompileScriptCommand            compileScript.Expression = <script>window.open("https://www.youtube.com");</script>.Value            Dim compileScriptResponse As CommandResponse(Of Chrome.Runtime.CompileScriptCommandResponse) =                Await ChromeSession.SendAsync(compileScript)            Dim setScriptSource As New Chrome.DeBUGger.SetScriptSourceCommand()            setScriptSource.ScriptSource = <script>window.open("https://www.Google.com");</script>.Value            Dim setScriptSourceResponse As CommandResponse(Of Chrome.DeBUGger.SetScriptSourceCommandResponse) =                Await ChromeSession.SendAsync(setScriptSource)        End Using    End Sub).Wait()

…请注意,我的代码是垃圾,因为除了打开一个新的chome实例之外,它没有做任何预期的事情.

我之所以使用Chrome.XXXXX.EnableCommand类,是因为我发现了这个问题及其答案:@L_419_5@,由于MasterDevs lib中缺少XML文档,我认为Enablecommand类与该答案中的内容相同.谷歌小组,因为答案说,似乎需要在没有任何东西之前使用EnableCommand类…但我真的不确定Chrome.Runtime.Enablecommand类是否相当于Runtime.enable,无论我是否使用它正确…

我的问题是:

如何在C#或VB.NET中使用MasterDevs ChromeDevTools库在Chrome控制台窗口中插入Js代码片段,然后执行它?

解决方法 我想说项目需要更新.

在项目的github页面上,所有者提到您可能需要使用Chrome团队中的新protocol.Json重新构建源代码. (https://chromedevtools.github.io/devtools-protocol/tot/)该文件最近更新于2018年4月9日,但Nuget上的最新版MasterDevs / ChromeDevTools以及他们最后一次通过的构建提交是从2017年11月3日开始.可能最新版本的Chrome可能已经打破了最新版本版本的MasterDevs / ChromeDevTools.

目前,当我写这篇文章时,MasterDevs / ChromeDevTools项目构建失败,您可以获取旧版本并使用当前的protocol.Json文件更新它并重新构建它.我会在github项目页面的“问题”部分中提出任何进一步的问题.

总结

以上是内存溢出为你收集整理的c# – 如何在.NET中使用MasterDevs ChromeDevTools?全部内容,希望文章能够帮你解决c# – 如何在.NET中使用MasterDevs ChromeDevTools?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1233138.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-06
下一篇2022-06-06

发表评论

登录后才能评论

评论列表(0条)

    保存