我想驗證具有特定href的鏈接是否存在於頁面上。我目前正在做我應該看到「/ some-link-here」,但似乎失敗。我怎樣才能確保鏈接存在,而不必點擊+我應該在「/ some-link-here」頁面?確定鏈接是否存在w黃瓜/水豚
3
A
回答
5
您將需要添加自定義步驟
Then /^"([^\"]*)" should link to "([^\"]*)"(?: within "([^\"]*)")$/ do |link_text,
page_name, container|
with_scope(container) do
URI.parse(page.find_link(link_text)['href']).path.should == path_to(page_name)
end
end
您可以像使用Then "User Login" should link to "the user_login page"
步驟,USER_LOGIN是你的路線
0
我用jatin的答案的名字,但有一個單獨的作用域步:
When /^(.*) within ([^:]+)$/ do |step, parent|
with_scope(parent) { When step }
end
Then /^"([^\"]*)" should link to "([^\"]*)"$/ do |link_text, page_name|
URI.parse(page.find_link(link_text)['href']).path.should == path_to(page_name)
end
然後,我有這個在我的測試:
step '"my foods" should link to "food_histories" within ".tabs"'
這在我的路徑:
# note: lots not shown
def path_to(page_name)
case page_name
when /^food_histories$/
food_histories_path
end
end
0
這是我做了我自己,很簡單,但它確實意味着你硬編碼您的網址這是誠實的,因爲它使你的測試很脆不理想。特別是如果您使用的是第三方網址!
但是,如果您使用的是您管理的網址,並且很樂意繼續進行此測試,那就去做吧。
Then /^the link is "(.*?)"$/ do |arg1|
page.should have_xpath("//a[@href='" + arg1 + "'][@target='_blank']")
end
相關問題
- 1. 點擊鏈接使用水豚/黃瓜
- 2. 黃瓜vs水豚
- 3. 導軌+黃瓜+水豚:匹配確切鏈接文本
- 4. 水豚黃瓜匹配器
- 5. 傳遞黃瓜和水豚
- 6. 黃瓜/水豚對硒?
- 7. 黃瓜水豚步功能
- 8. 黃瓜,水豚和ElementNotFound
- 9. 黃瓜/水豚/硒 - 設置
- 10. 黃瓜水豚fill_in失敗
- 11. 表訂購黃瓜水豚
- 12. 水豚和黃瓜CSS定位
- 13. 黃瓜和水豚,點擊非鏈接或按鈕元素
- 14. 鏈接不觸發通過黃瓜,水豚
- 15. 導軌,黃瓜,水豚 - 黃瓜一步不能按下按鈕
- 16. 超時::錯誤與硒/水豚/黃瓜
- 17. 水豚/黃瓜找不到收音機
- 18. 黃瓜+水豚+硒:選擇文本
- 19. 水豚黃瓜只有空白頁
- 20. 水豚&黃瓜|獲取餅乾
- 21. 語法錯誤黃瓜+水豚
- 22. 黃瓜/水豚場景使用引號
- 23. 黃瓜/水豚表中的變量
- 24. 軌,黃瓜,水豚:會話不持久
- 25. 黃瓜/水豚測試x標籤
- 26. 黃瓜/水豚找到()不重試
- 27. 點擊圖片使用黃瓜水豚
- 28. 使用黃瓜/水豚測試ActiveMerchant
- 29. 黃瓜/水豚undefined方法'訪問'
- 30. 迭代列陣水豚黃瓜