在 Capybara 中设置 page/respone.body 曾经在 Webrat 中工作
我要迁移到水豚。 我遇到的问题之一是迁移 pdf 步骤。
此步骤将 page.body 设置为已解析的 pdf。 这样我就可以使用默认的黄瓜步骤。
When 'I follow the PDF link "$label"' do |label|
click_link(label)
page.body = PDF::Inspector::Text.analyze(page.body).strings.join(" ")
end
前任。
When I follow the PDF link "Catalogue"
Then I should see "Cheap products"
我得到的错误是这样的:
undefined method `body=' for #<Capybara::`enter code here`Document> (NoMethodError)
I am migrating to Capybara.
One of the problems I have is migrating the pdf step.
This step sets page.body to a parsed pdf.
That way I can use the default cucumber steps.
When 'I follow the PDF link "$label"' do |label|
click_link(label)
page.body = PDF::Inspector::Text.analyze(page.body).strings.join(" ")
end
Ex.
When I follow the PDF link "Catalogue"
Then I should see "Cheap products"
The error I get is this one:
undefined method `body=' for #<Capybara::`enter code here`Document> (NoMethodError)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
最重要的是,确保设置
:js =>; true
像这样:现在这取决于驱动程序,但这是一个解决方案......
On top, make sure you set
:js => true
like this:Now this is dependent on the driver, but it's one solution...
水豚的源代码中没有定义 body 的设置器,因此您不能像这样在外部设置它。试试这个(未经测试):
There is no setter for body defined in the source in capybara, so you cannot set it externally like that. Try this (untested):
这对我有用:
请注意,我正在内联提供 PDF
This worked for me:
Note that I'm serving my PDF inline