繁体   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