[类硒][水豚][导轨]我们可以在机架应用程序中使用selenoid吗?



在Rails中,当我们使用水豚和硒时,默认情况下,它们为我们的rails应用程序运行机架服务器,我们可以在不运行实际应用程序的情况下对其进行测试。

所以让我解释一下它是什么意思:

因此,当我们为 Rails 配置 Capybara Rspec 和 Selenium 时,就不需要单独运行您的 Rails 服务器,当我们运行规范时,当我们访问规范中应用程序的任何 URL 时,它就可以工作了。 它的发生是因为它在后台创建了一个机架服务器。

现在我使用Selenoid而不是Selenium,但机架服务器无法正常工作。那么 Selenoid 是否仅适用于远程 URL 并且不创建任何机架应用程序?

如果需要任何其他信息,请告诉我。

谢谢!

Selenoid是Selenium网格的替代品,并管理您用于测试的浏览器实例。它与运行受测应用程序无关。

您遇到的问题是 Capybara 在您运行测试的机器上运行应用程序,但是当使用 selenoid 时,浏览器在其他机器(容器(上运行。这意味着当Capybara启动应用程序并告诉浏览器访问https://localhost:<some port>/some/path时,localhost引用对于在其他机器上运行的浏览器不再正确。要更正此问题,您需要将Capybara.app_host设置为运行测试的 url,从运行浏览器实例的计算机/容器中可以看到。根据容器网络的确切配置方式,您还需要修复Capybara用于运行应用程序的端口或指定Capybara.always_include_port选项。

Capybara.app_host = "http://local_machine_as_seen_from_containers" 
Capybara.always_include_port = true

Capybara.server_port = 1234 # some port number
Capybara.app_host = "http://local_machine_as_seen_from_containers:#{Capybara.server_port}"

相关内容

  • 没有找到相关文章

最新更新