3

Selenium を使用してテストを実行すると、1 つのステップが失敗し、ページはブラウザーで次のように表示されます。

Internal Server Error

can't convert nil into String
WEBrick/1.3.1 (Ruby/1.9.2/2010-08-18) at 127.0.0.1:50752

代わりにculerityで実行すると、次の出力が得られます。

    Broken pipe (Errno::EPIPE)
          /Users/yuval/.rvm/gems/ruby-1.9.2-p0/gems/culerity-0.2.15/lib/culerity/remote_object_proxy.rb:47:in `write'
etc...

jsドライバーなしで実行すると、その時点でまったく失敗しません(代わりに、jsが使用されている時点で失敗するため、jsドライバーで実行しようとしています)。

何か案は?

4

1 に答える 1

7

私はちょうど同じ問題に直面しましたが、解決策を見つけました。

「http://localhost:3000」の代わりに「http://127.0.0.1:3000」を開発モードでブラウザを開こうとすると、同じ問題に直面するはずです。

私の場合、View ファイルで "request.domain" を使用したため、問題が発生しました。これは、リクエストが IP のような形式、つまり "http://127.0.0.1:50752" で与えられた場合に nil を返します。

したがって、ヘルパー メソッドのビューのどこかに次のようなものがある場合

link_to "Click me", :host => subdomain + "." + request.domain + request.port_string

次のように、ヘルパー メソッドを使用するように変更できます。

link_to "Click me", :host => with_host(subdomain)

そして、次のようなヘルパー:

  def with_host(subdomain)
    if request.domain.present?
      subdomain + "." + request.domain + request.port_string
    end
  end

それが私にとって最も簡単な解決策です。おそらく、あなたは似たようなものを持っています。

于 2011-04-20T05:38:01.383 に答える