2016-03-31 13 views
0

Bilet oluşturma işlemini denediğim bir uygulamayı denemeye çalışıyorum, bu yüzden bir bilet açmam ve sonra bunu varsaymam gerekiyor. Varsayalım ki, bununla ilgili bir sorun yaşıyorum çünkü biletler rastgele bir kimlikle (bilet sayısı) açıldı.HTML sayfasında rastgele bir kimlik nasıl bulunur (Salatalık/Capibara)

<button type="submit" id="assign_ticket_6168218" class="btn btn-primary exchange_button"> 
<i class="fa fa-thumbs-up"></i> Assume 

id="assign_ticket_6168218" sayısı rasgele, ama diğer kısmı her zaman aynıdır. Yani, ben bilet oluşturuyorum ve şimdi bunu varsaymak için düğmeye tıklamanız gerekiyor. Bir bileti nasıl oluşturabilirim ve kimlikte kullanmak için biletin numarasını saklayabilirim?

Not: Onun yerine bir css, bir xpath arama kullanabilirsiniz

`<div id="messages" class="clearfix"> 
    <div class="success global alert-default form-section"> 
    <ul> 
     <li><i class="fa fa-check"></i>Ticket 6168218 created.</li> 
    </ul> 
    <a href="javascript:;" class="close-alert"><strong>x</strong></a> 
</div> 

`

cevap

0

yapabilirdi

expect(page).to have_xpath("//div[contains(@cid, 'assign_ticket_')]") 

Veya böyle bir şey olabilir böylece xpath regex destekler Bilet numarasını bir değişkene (SO'daki önceki sorudan) çıkarmışsınız, o zaman sadece

click_button("assign_ticket_#{ticket_number}") 
0

: Bu importante ise bir bilet oluştururken, ben biletin kimliğine sahip bir onay iletisi Test etmek istediğiniz öğeyi bulmaya çalışın. Eğer oluşturuldu numarası (sizin durumunuzda bilet numarası) varsa, size bıraktıysanız

expect(page).to have_xpath("//div[contains(@cid, 'assign_ticket_#{ticket_object_number')]") 
+0

Bu formu denedim ama işe yaramadı. Onları denedim bu page.find (: xpath, "// div [içerir (@cid, 'assign_ticket _ # {@ ticket_no [1]}')]") '. Ama bulamamış bir mesaj alıyorum 'Capybara :: ElementNotFound: xpath bulunamıyor // div [içerir (@cid, 'assign_ticket_6168332')]' '. Baska öneri? –

+0

Muhtemelen XPath'inizde @id demek istiyorsunuz. Ayrıca CSS, dizeleri başlatan/sonlayan/barındıran eşleme niteliklerini de destekler - div [id * = "assign_ticket_"], XPath tarafından sağlanan gibi bir eşleşme içerir ve div [id^= "assign_ticket_"] bir başlangıç ​​yapar kimliğindeki maç –

İlgili konular