虽然这应该是用户行为的直接结果,但似乎不可能在Capybara上发送一个POST请求。例如,使用data-method="POST"链接,然后单击该链接将引发服务器错误:
No route matches [GET] "blabla"这是有意义的,因为它应该是PUT请求(如其属性中所指定的)。找到了一些关于Capybara无法直接发送POST请求的相关帖子,但没有发现与data-method属性集有关的链接。
发布于 2021-10-05 16:11:27
使用“数据-方法”依赖于使用Rails不引人注目的Javascript驱动程序创建离散表单并将其发布到服务器。如果Rails UJS没有正常运行,或者客户端不支持JS,那么就会发送普通的GET请求--毕竟,它只是一个链接,浏览器在单击链接时发送GET请求。
Capybara默认使用不运行javascript的RackTest驱动程序。它实际上不是一个真正的浏览器--它更像是一个运行在XML解析器之上的浏览器模拟器。
您需要使用button_to来创建一个实际的表单元素,它根本不依赖于JS,或者使用换个凯巴拉的司机来运行javascript (比如硒网络驱动程序或幻影 )。
https://stackoverflow.com/questions/69452452
复制相似问题