簡體   English   中英

我如何才能看到黃瓜失敗的黃瓜步驟中發現了什么?

[英]How can I see what capybara found in a failing cucumber step?

我開始從黃瓜+ webrat遷移到黃瓜+水豚。 現在“我應該看”的行為似乎有些不同。 其中大部分都失敗了,雖然我沒有改變頁面上的任何內容。 我替換了應該找到的片段,其中包含每個頁面上的一些內容,對於某些文本它可以使用,而對於其他文本則不然。 我找不到頁面內容中的任何模式,也沒有找到任何模式。 Webrat用於打印它找到的頁面內容,以防它不包含所需的短語。 反正有沒有capybara顯示它從試圖找到文本的頁面中得到了什么文本?

Then show me the page調用webrat / save_and_open_page的底層save_and_open_page方法。 發現在使用牛排時很有用。

嘗試添加此步驟:

Then show me the page

如果您希望瀏覽器在頁面失敗時打開頁面,請使用'launchy'gem。 將它添加到您的gem文件中,然后在/ features / support中創建一個名為debugging.rb的文件,其中包含以下內容:

After do |scenario|
   save_and_open_page if scenario.failed?
end

如果你在你的頁面中使用Javascript或Ajax並想看看發生了什么,我發現Poltergeist驅動程序非常善於讓你進入DOM並找出問題所在。

如果使用遠程調試選項設置Capybara驅動程序:

Capybara.register_driver :poltergeist do |app|
  Capybara::Poltergeist::Driver.new(app, inspector: true)
end

然后,您可以在步驟中添加以下行:

page.driver.debug 

這將啟動一個具有當前DOM狀態集的新Chromium瀏覽器,讓您進入控制台。 (在我的Linux版本中,我不得不將鉻符號鏈接到鉻瀏覽器,但它運行正常)。

來源信息: http//jonathanleighton.com/articles/2012/poltergeist-0-6-0/

Then show me the response 黃瓜1.1Then show me the response不起作用 我發現使用capybara的命令編寫一個步驟很有用:

print page.html

這將輸出DOM的當前狀態

您還可以使用“然后顯示響應”,如果您不想使用瀏覽器,則會將HTML輸出到控制台。

當事情失敗時,你總是可以拍攝一個屏幕截圖。 我通過這種方式調試了很多失敗的功能。

暫無
暫無

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

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