2016-04-08 16 views
1

Belirli bir değere sahip özniteliği olan bir öğe sayımı bulmaya çalıştığım rspec'te bir capybara testi yazıyorum. Benim DOM aşağıdaki unsuru vardır:Capybara :: ElementNotFound 'find_field' kullanarak

<svg version="1.1" id="some_id" x="0px" y="0px" viewBox="0 0 2 2" enable-background="previous 0 0 2 2"> 
<svg version="1.1" id="some_id" x="0px" y="0px" viewBox="0 0 2 2" enable-background="previous 0 0 2 2"> 
<svg version="1.1" id="some_id" x="0px" y="0px" viewBox="0 0 5 7" enable-background="Hello 0 0 5 7"> 

Ben "0 0 2 2" olarak "Önceki 0 0 2 2" ya da belki ViewBox değeri olarak etkinleştirmek-arka plan değeri olan elemanın sayısını bulmak istiyoruz.

expect(find_field("enable-background", {with: "previous 0 0 2 2"}).count).to eq(2) 

Hata alıyorum: Capybara::ElementNotFound: Unable to find field "enable-background" with value "previous 0 0 2 2"

yanlış Burada ne işim aşağıdaki çalıştı?

cevap

0

ben bunu anladım - expect(find_all('svg[viewBox="0 0 2 2"]').count).to eq(2)

+0

Eğer find_all sonra sayımı bilmek istiyorsanız Öte yandan count doğrulamak isterseniz/tüm Cevabınız yaptığı gibi, sen yazmalısın, belirli bir numaranın doğru olduğunu 'beklemek (sayfa) .to have_selector (' svg [viewBox = "0 0 2 2"] ', sayma: 2) '- Capybara'nın bekleme davranışını kullanmasına izin vererek testlerin potansiyel dalgalanmasını azaltacaktır. –