3

我正在運行黃瓜1.2.1用Watir-webdriver 0.6.1來測試網頁。超時只能在Jenkins上運行黃瓜

本地所有的測試運行正常,但當試圖啓動它們在CI機器上(詹金斯)我填寫JavaScript表格時超時。我有一個電子郵件和密碼textfields,但黃瓜無法填充它們。幾分鐘後,兩分鐘後,只有電子郵件textfiels已被填充...

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 protected]")
@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,操作系統是CentOS。

你有什麼建議嗎?如果您需要更多關於該問題的信息,只需詢問。

任何建議都是歡迎的。

回答

1

我有同樣的問題,我添加的代碼下面一行在我env.rb文件和它現在工作的罰款。

client = Selenium::WebDriver::Remote::Http::Default.new 
client.timeout = 300 # seconds – default is 60 
$browser = Watir::Browser.new :firefox, :http_client => client 
+1

感謝您的提示!它可以工作,但不能接受9分鐘(!!)填充兩個文本框。仍然想知道問題出在哪裏;當彈出窗口出現時,執行'command_processor.js'的速度可能會非常緩慢...... – Ezetha

+1

在此之後仍然會超時。正如賈諾所說,這並不能真正解決問題,只能等待更長時間...... – shigazaru