Web ページをテストするために、Watir-webdriver 0.6.1 で Cucumber 1.2.1 を実行しています。
ローカルではすべてのテストが正常に実行されますが、CI マシン (Jenkins) でそれらを起動しようとすると、javascript フォームに入力するときにタイムアウトが発生します。電子メールとパスワードのテキストフィールドがありますが、Cucumber では入力できません。数回、2 分後にメールのテキストフィールドだけが入力されました...
JavaScript フォームが正しく開きます。これはそれを開くリンクです:
`<a id="user_popup" class="textuser_popup" url="/en/bla/" href="javascript:void(0);" trackclick="click/unlogged/test/test/login" rel="nofollow" gaclick="/en/bla/homepage/click:header-section>login">Sign in</a>`
フォームが読み込まれると、電子メールとパスワードのコードは次のようになります。
<ul class="signin">
<li class="reg_form">
<label class="reg_form_label">Your email</label>
<input id="yourEmail" class="l_email" type="text" value="" name="email">
</li>
<li class="password_area">
<label class="reg_form_label">Your password</label>
<input id="yourPassword" class="l_password" type="password" name="password">
</li>
</ul>
私は PageObject を使用していますが、ステップで要素を直接呼び出すこともできません。これは私がフィールドを埋める方法です:
@browser.text_field(:id, "yourEmail").set("email@domain.com")
@browser.text_field(:id, "yourPassword").set("thePass")
最後に、エラーは次のとおりです。
execution expired (Timeout::Error)
/usr/lib/ruby/1.8/timeout.rb:64:in `rbuf_fill'
/usr/lib/ruby/1.8/net/protocol.rb:134:in `rbuf_fill'
/usr/lib/ruby/1.8/net/protocol.rb:116:in `readuntil'
/usr/lib/ruby/1.8/net/protocol.rb:126:in `readline'
/usr/lib/ruby/1.8/net/http.rb:2028:in `read_status_line'
/usr/lib/ruby/1.8/net/http.rb:2017:in `read_new'
/usr/lib/ruby/1.8/net/http.rb:1051:in `request'
/usr/lib/ruby/1.8/net/http.rb:1037:in `request'
/usr/lib/ruby/1.8/net/http.rb:543:in `start'
/usr/lib/ruby/1.8/net/http.rb:1035:in `request'
テストをローカルで起動すると、まったく問題なく動作します。リモートで実行しているときに失敗する理由がわかりません。リモート ブラウザ (通常はヘッドレス モードで実行されますが、実行を表示するために X11 セッションを開きました) は Firefox ESR 10.0.8 で、OS は CentOS です。
何が起こっているかについて何か提案はありますか?問題についてさらに詳しい情報が必要な場合は、質問してください。
どんなアドバイスも大歓迎です:)