2012-10-12 15 views
9

Tablo hücrelerine benzersiz kimlik atamayan bir uygulamanız var. Sütun 1'deki benzersiz metin, 2. sütundaki bir yönetme bağlantısı ve 3. sütundaki bir silme bağlantısı verildiğinde, capybara'ya 'Foo' metnini içeren satırdaki yönetme bağlantısını tıklatmasını nasıl söyleyebilirim? Rails/Capybara: Benzersiz bir metin içeren bir tablo satırındaki bir bağlantı nasıl tıklanır

Foo manage delete 
Bar manage delete 

Ben .should maddesi ile kullanıldığında find('tr', text: "Foo") nasıl kullanılacağı görüyoruz. 'Yönet' metnini içeren bağlantıyı nasıl tıklayacağımı görüyorum. Ama bir satırı bulmak için bunları nasıl birleştireceğinizi görmüyorum ve o satırın içinde bir bağlantıyı tıklayın.

cevap

14

Bunu test ettik ve çalışması gerekir: bu olduğunu söylüyor Ne

find(:xpath, "//tr[td[contains(.,'Foo')]]/td/a", :text => 'manage').click 

metin 'Foo' içeren bir sütun ile satırı bulun ve bir sütun bağlantıya tıklayın bir metin ile aynı satır 'yönetmek'.

'Foo' görünür (yani her yerde üst üste olabilir), o zaman bunu yapabilirsiniz nereye umursamıyorsan:

başka örnek
find(:xpath, "//tr[contains(.,'Foo')]/td/a", :text => 'manage').click 
+0

cevabımı Güncelleme . Aslında, xpath içindeki xpath ve dizeleri için aynı tek tırnak formatını kullandım. –

+0

harika teşekkür ederim ... – jpwynn

7

:

When(/^I delete the Book with the Title "(.*?)"$/) do |title| 
    find('tr', text: title).click_link("Delete") 
end 
İlgili konular