2017-03-06 141 views
0

我遇到了錯誤,在特性測試中使用Rspec,水豚和Poltergeist測試我的Braintree沙箱支付。我已經設置完成了人類在開發過程中所做的事情(輸入付款信息並單擊提交)。它在開發中工作正常。然而,當我跑我的天賦,我得到的支付頁面上的JavaScript錯誤在加載時:水豚/ Poltergeist和布倫特裏測試

Capybara::Poltergeist::JavascriptError: 
    One or more errors were raised in the Javascript code on the page. If you don't care about these errors, you can ignore them by setting js_errors: false in your Poltergeist configuration (see documentation for details). 

    [object Object] 
    [object Object] 
     at https://js.braintreegateway.com/js/braintree-2.24.0.js:9484 in fallbackError 
# /usr/local/bundle/gems/poltergeist-1.10.0/lib/capybara/poltergeist/browser.rb:365:in `command' 
# /usr/local/bundle/gems/poltergeist-1.10.0/lib/capybara/poltergeist/browser.rb:181:in `click' 
# /usr/local/bundle/gems/poltergeist-1.10.0/lib/capybara/poltergeist/node.rb:17:in `command' 
# /usr/local/bundle/gems/poltergeist-1.10.0/lib/capybara/poltergeist/node.rb:131:in `click' 

有沒有人遇到了類似的問題,或者有任何想法,爲什麼布倫特裏的JS可能會在測試中拋出這個錯誤(無頭瀏覽器)在開發過程中工作正常嗎?

+0

可能重複的[Poltergeist拋出JS錯誤時js \ _errors:false](http://stackoverflow.com/questions/25673890/poltergeist-throws-js-errors-when-js-errors-false) – fabersky

回答

2

通過查看braintree-2.24.0.js:9484提到的行,可以看到Braintree.js通過console.error輸出錯誤,所以Poltergeist正確地通知您JS錯誤。根據您使用的Poltergeist的哪個發佈版本,它至多等同於5年前的Safari版本,因此可能是braintree JS不再兼容,或者需要使用polyfill或two來正確運行。您需要進行調試並試圖找出所記錄的[object Object]究竟是什麼。一種選擇是從切換到硒的測試開始,看看錯誤是否仍然存在。

+0

謝謝托馬斯!您的評論指出了我的正確軌道 - 而不是使用硒(在Docker中運行測試,並不想全部設置)我嘗試了Braintree的js插件的舊版本,並且它工作正常。最新版本(2.24.0)必須支持PhantomJS,而2.0.0仍然有效(至少在我使用的FakeBraintree Gem中也是如此)。再次感謝! – amclelland

相關問題