首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >远程调试chrome -不打开websocket

远程调试chrome -不打开websocket
EN

Stack Overflow用户
提问于 2021-03-01 00:14:14
回答 1查看 562关注 0票数 0

我正在通过chromedriver运行chrome headless,通过python运行selenium。我在Mac和Linux上都遇到了以下问题。

Im启动chrome如下所示:

代码语言:javascript
运行
复制
        if self.headless:
            options.headless = True
            options.add_argument("--headless")

        if self.debug_port:
            logging.info(f"Setting up remote debugging on port {self.debug_port}")
            options.add_argument(f"--remote-debugging-port={self.debug_port}")
            options.add_argument(f"--remote-debugging-address=0.0.0.0")

如果我从chrome的另一个主实例连接到http://localhost:9222,我可以看到会话列表并无缝地连接到它。在这一点上,我打开了一个窗口,其中包含远程会话和开发控制台的截屏。

下面是一个成功示例:

当我连接到http://192.168.1.194:9222时,我得到了会话列表,当选择一个会话时,开发控制台打开,但它没有启动到ws://192.168.1.194的websocket连接,所以录屏和远程调试功能不可用。

以下是失败示例:

如果你想看一下,我有captured har files and uploaded them here

EN

回答 1

Stack Overflow用户

发布于 2021-03-04 03:30:26

使用以下步骤,我能够远程调试。然而,截屏功能不起作用。最终,这就是我需要的,所以在我的情况下,这只是50%的解决方案。

因此,正如上面在注释中指出的,阻碍远程调试工作的是chrome调试器链接到https://chrome-devtools-frontend.appspot.com/.....,并为websocket参数传递了一个ws://192.168.1.194值。任何浏览器都会基于它是混合内容而固有地阻止它--即: https + ws

这里需要的是在http服务器上运行chrome dev工具前端,并将您的chrome实例定向到该服务器,而不是appspot实例。

解决步骤

1安装depot_tools (构建的前提条件)

https://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/depot_tools_tutorial.html#_setting_up

2检出devtools-前端存储库

https://github.com/ChromeDevTools/devtools-frontend/blob/master/docs/workflows.md#checking-out-source

3构建chrome devtools前端

https://github.com/ChromeDevTools/devtools-frontend/blob/master/docs/workflows.md#build

4启动devtools-前端http服务器

https://github.com/ChromeDevTools/devtools-frontend/blob/master/docs/workflows.md#running-in-hosted-mode

5运行2个chrome实例,并使用其中一个实例调试另一个实例

5.1启动chrome headless的第一个实例

已启用...with远程调试。查看上面问题中的python方法,或者使用相同的参数从命令行执行此操作

5.2启动第二个chrome实例

...using一个不同的用户数据目录--user-data-dir=<some-path>

5.3导航到http://192.168.1.194:9222

使用第一个chrome实例的IP地址和您选择的端口。

5.4创建到本地开发服务器的链接

chrome的第二个实例现在将向您显示调试第一个实例的每个打开的选项卡的链接。然而,链接仍将转到https://chrome-devtools-frontend.appspot.com/....。您需要复制和粘贴所需的链接,并将主机名替换为在步骤4中启动的devtools前端的主机名

沃拉!!

如果你知道如何让截屏视频工作,请在下面发表评论!?

注意:我也试过在devtools前端使用npm run server命令,但由于某种原因,服务器在¯\_(ツ)_/¯上完全不能工作

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66411149

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档