赛普拉斯仅针对 devtools 端口进行测试
Cypress tests against devtools port only
我们使用一些第三方企业软件(“Container App”),它有一个嵌入式 Chromium 浏览器,我们的网络应用程序在其中运行。
我们使用 Cypress 在此容器外部的独立浏览器中测试我们的 Web 应用程序,但是我们希望能够在内部测试它,因为它通过 javascript 以各种方式与容器交互.
容器唯一公开的是一个“远程开发工具-url”到目标(我们的)浏览器,它可以粘贴到容器外的本地浏览器,然后在开发工具中调试。像这样:
Container 提供了 2 个不同的 url 用于上述调试目的,它们的工作方式看起来很相似。它们类似于以下内容(不准确,不幸的是我不在工作 atm):
devtools://...inspector.html?id=xxx
http://ip/...inspector.html?id=xxx
是否可以将 Cypress 设置为“正常”测试,只能访问此远程 devtools-url/port?
Cypress 无法启动容器内的目标浏览器,因为只有容器才能启动和关闭它。所以目标浏览器已经是 运行(带有 --remote-debugging-port)。我可以通过调用 /json/list.
动态获取 devtools-id
如果不行,有没有其他方法可以达到在容器内测试browser/app运行的目的?
这是不可能的。使用 Cypress 测试应用程序中嵌入 Chromium 运行 的网页意味着 Cypress 需要连接到已经 运行 的浏览器。赛普拉斯没有这种可能性。
文档指出:
When you run tests in Cypress, we launch a browser for you. This enables us to:
- Create a clean, pristine testing environment.
- Access the privileged browser APIs for automation.
有 a request in Cypress issue tracker 添加选项以连接到已经 运行 的浏览器。但赛普拉斯开发人员对此没有任何回应。
我们使用一些第三方企业软件(“Container App”),它有一个嵌入式 Chromium 浏览器,我们的网络应用程序在其中运行。
我们使用 Cypress 在此容器外部的独立浏览器中测试我们的 Web 应用程序,但是我们希望能够在内部测试它,因为它通过 javascript 以各种方式与容器交互.
容器唯一公开的是一个“远程开发工具-url”到目标(我们的)浏览器,它可以粘贴到容器外的本地浏览器,然后在开发工具中调试。像这样:
devtools://...inspector.html?id=xxx
http://ip/...inspector.html?id=xxx
是否可以将 Cypress 设置为“正常”测试,只能访问此远程 devtools-url/port?
Cypress 无法启动容器内的目标浏览器,因为只有容器才能启动和关闭它。所以目标浏览器已经是 运行(带有 --remote-debugging-port)。我可以通过调用 /json/list.
动态获取 devtools-id如果不行,有没有其他方法可以达到在容器内测试browser/app运行的目的?
这是不可能的。使用 Cypress 测试应用程序中嵌入 Chromium 运行 的网页意味着 Cypress 需要连接到已经 运行 的浏览器。赛普拉斯没有这种可能性。
文档指出:
When you run tests in Cypress, we launch a browser for you. This enables us to:
- Create a clean, pristine testing environment.
- Access the privileged browser APIs for automation.
有 a request in Cypress issue tracker 添加选项以连接到已经 运行 的浏览器。但赛普拉斯开发人员对此没有任何回应。