簡體   English   中英

Capybara / Selenium Webdriver + DataTables不能很好地播放

[英]Capybara/Selenium Webdriver + DataTables not playing nicely

我有一個頁面,該頁面一旦加載,就會在兩個不同的表上調用DataTables。 但是,在頁面加載時,第二個表出錯了。 這是錯誤:

DataTables warning: table id=DataTables_Table_1 - Ajax error. For more information about this error, please see http://datatables.net/tn/7

令人討厭的是,如果在頁面加載到Capybara之后立即放置debugger ,則可以單擊錯誤以將其關閉,然后使用頁面上的按鈕手動將數據重新加載到DataTable中,並且工作正常。 同樣奇怪的是,頁面上的第一個DataTable可以很好地加載(並且在發生故障之前先調用了DataTable())。 我以為這可能是服務器端的一個問題,該問題返回了信息以填充表,但事實證明,它從來沒有命中服務器(直到我按下重新加載按鈕)。 如果加載只有一個DataTable的另一頁,則顯示相同的錯誤。 這很奇怪,因為頁面上有兩個表的第一個表會加載,但是頁面上只有一個表的一個表會自動中斷。

有人看到過這樣的東西嗎? 我會發布Capybara代碼,但實際上只是訪問導致問題的頁面,一點也不花哨。

我起初以為是因為調用JS太快或其他問題而引起的,但是一頁中斷一個表,而另一頁中斷只有SECOND表,這有點奇怪。 再說一次,它永遠不會在頁面加載時到達服務器(應該是服務器),因此后端什么也沒有。 不知道從哪里開始。

從2.7.0版開始,Capybara本地支持服務器配置。

只需將Gemfile gem 'puma'添加到您的Gemfile ,並將以下行添加到rails_helper.rb

Capybara.server = :puma

這將解決414(請求URI太大)錯誤,並且數據表將與Capybara一起正常工作。

經過更多調試之后,我意識到有一個細微的錯誤(由於在我的測試環境中未打印服務器日志,因此未在日志中顯示)414。 Capybara顯然阻止了較長的GET請求(盡管現在主要的瀏覽器都支持它們),所以我在這里發布了一個問題: https : //github.com/jnicklas/capybara/issues/1467

我寧願不對索引路由使用POST :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM