赛普拉斯仅针对 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 添加选项以连接到已经 运行 的浏览器。但赛普拉斯开发人员对此没有任何回应。