2011-03-30 30 views
1

由於使用默認webstep水豚:鏈接與HTML內容沒有發現

When /^(?:|I)follow "([^"]*)"$/ do |link| 
    click_link(link) 
end 
一個HTML結構這樣

<a href="…"><strong>My Link</strong></a> 

由水豚通過一根黃瓜一步

When I follow "My Link" 

沒有被捕獲

此工作時:

When I follow "<strong>My Link</strong>" 

我一直沒有使用Capbybara,但我可以看到是什麼原因造成的問題。所以,從更普遍的層面來看,這有什麼合適的方法呢?當然這種情況一定很常見,對吧?

任何關於黃瓜濫用的想法和一般思考非常歡迎!

回答

1

我會移動錨標籤外的強標籤或更好地使用CSS。

或者您可以分配id屬性來鏈接並使用它來代替內容。如果你的應用支持多種語言,這種方式是最好的。

否則你必須寫某種的XPath選擇的這種特殊情況:

find(:xpath, "//a[contains(//text(), \"#{locator}\")]").click 

沒有測試,只是一個想法。

+0

謝謝!我想保持結構完整,因爲這只是一個簡單的例子。樣式通常需要一個鏈接中的一個或多個標籤,但鏈接的文本內容並未真正受到影響。使用ID屬性的想法可能更加可行,即使我不想爲了測試而添加任何標記。我會檢查你的選擇器建議。 – polarblau 2011-03-30 21:23:30