Cucumber/Capybara - 如何获取当前执行的主机和端口

Jon*_*han 44 selenium ruby-on-rails cucumber capybara

我需要使用Open :: URI从我的应用程序下载一个csv文件,为此我需要给它一个完全限定的URI.那么最好的方法是获取主机,更重要的是我的黄瓜脚本中的PORT?

注意我正在使用Capybara和Selenium

Woa*_*dae 79

对于水豚<2.0:

Capybara.current_session.driver.rack_server.host
Capybara.current_session.driver.rack_server.port
Run Code Online (Sandbox Code Playgroud)

Capybara 2.0:

Capybara.current_session.server.host
Capybara.current_session.server.port
Run Code Online (Sandbox Code Playgroud)

仅供参考,我的用例是在集成测试生成的邮件中有可点击的链接.

  • 设置Capybara.server_port在selenium集成测试独立于其他集成测试时运行,但在与其他测试一起运行时无法更改端口,至少在我的环境中是这样.要求使用capybara想要使用的端口号,运行多个测试似乎更好.如果我改变所有测试的端口,而不是让一些人自己选择,那么它可能会有效. (2认同)
  • .@ Woahdae这样做仍然可以工作(抱歉已经离开了一段时间 - 很高兴能够得到正确答案)但是`Capybara.current_session.server`会为我返回`nil` (2认同)

iaf*_*nov 37

您可以设置将用于生成应用程序服务器的端口

Capybara.server_port = 31337
Run Code Online (Sandbox Code Playgroud)

  • @iafonov,+1为31337 (2认同)
  • 我想让 capybara 监听所有接口,所以我设置了服务器主机 ```ruby Capybara.server_host = '0.0.0.0' ``` (2认同)