capybara-webkit 在无头工作时使用哪个端口和域?

发布于 2025-01-06 17:36:24 字数 530 浏览 2 评论 0原文

我有一个应用程序,它使用存储在表中的域来确定网站的某些方面。如果在数据库中找不到该域,则会生成错误。

当我正常使用黄瓜进行测试时,我使用域 localhost,一切都按预期工作。当我尝试使用 capybara-webkit 和 headless 进行测试(用于测试网站的 javascript 部分)时,我收到 localhost 的域未找到错误。

谁能告诉我如何确定 capybara-webkit 和 headless 正在使用的域和端口,以便我可以确保可以提前将信息插入表中。或者,也可以提前设置水豚。

我尝试了以下方法但没有成功(尽管它对我的无 js/无头测试都有效)。

Capybara.app_host = "http://localhost"
Capybara.javascript_driver = :webkit

if Capybara.current_driver == :webkit
  require 'headless'

  headless = Headless.new
  headless.start
end

I have an app which uses domains stored in a table to determine certain aspects of the site. If the domain isn't found in the db, an error is generated.

When I test with cucumber normally, I use the domain localhost, and everything works as expected. When I try testing with capybara-webkit and headless (for testing the javascript portions of the site) I get a domain not found error for localhost.

Can anyone tell me how I can determine the domain and port that capybara-webkit and headless are using so that I can make sure that I can insert the info the the tables in advance. Or alternatively, set Capybara in advance instead.

I've tried the following without success (although it all works for my none js/headless tests).

Capybara.app_host = "http://localhost"
Capybara.javascript_driver = :webkit

if Capybara.current_driver == :webkit
  require 'headless'

  headless = Headless.new
  headless.start
end

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

万劫不复 2025-01-13 17:36:24

经过一些尝试和错误,我发现了一些可行的方法。我停止使用 localhost 作为数据库中的引用,而是使用 127.0.0.1。然后我将 env.rb 中的代码修改如下。

Capybara.javascript_driver = :webkit

if Capybara.current_driver == :webkit
  require 'headless'

  @headless = Headless.new
  @headless.start
end

Before('@javascript') do
  @javascript = true
end

Capybara.app_host = @javascript.present? ? nil : "http://127.0.0.1"

我意识到 @javascript 变量超出了这里的要求,但我在其他地方使用它。我不知道为什么它有效,但它确实有效!

With a bit of trial and error I found something that works. I stopped using localhost as the reference in the database and used 127.0.0.1 instead. I then amended the code in env.rb as follows.

Capybara.javascript_driver = :webkit

if Capybara.current_driver == :webkit
  require 'headless'

  @headless = Headless.new
  @headless.start
end

Before('@javascript') do
  @javascript = true
end

Capybara.app_host = @javascript.present? ? nil : "http://127.0.0.1"

I realise the @javascript variable is surplus to requirements here, but I use it elsewhere. I'm not sure why it works, but it does!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文