2016-04-12 18 views
1

AngularJS/ Rails ortamında zengin bir metin giriş kutusu için TextAngular'u kullanın.Capybara tümleştirme testi 'TextAngular' girişi

Entegrasyon testlerini Capybara/Selenium & Capybara-Webkit ile çalıştırın. Test için metin alanına metin girişi yapan bir entegrasyon testi oluşturmaya çalıştı. Ancak, bunu başarılı bir şekilde yapamadım.

Beni engelleyen şey, metin giriş kutusu kimliğinin, test yükleri veya sayfa yükleri her seferinde değişmesidir. Bu yüzden metin açısal testlerinde kullanılan aşağıdaki sınıfı kullandım. İle:

find('textarea.ta-html.ta-editor') 

Bunu kullandığını bildiğim şekilde kullanıyorum ve metin için yazılmış javascript testleri bunu kullandı. text angular github tests

i denemek ve bir metin değeri ile metin alanını ayarladığınızda

Ancak:

find('textarea.ta-html.ta-editor').set("Upgraded to SSD") 

alıyorum:

Ben Capybara kullanarak metin alanı için bir değer ayarlayabilirsiniz nasıl

Failure/Error: find('textarea.ta-html.ta-editor').set("Upgraded to SSD")
Selenium::WebDriver::Error::ElementNotVisibleError: Element is not currently visible and so may not be interacted with

?

cevap

1

textarea.ta-html.ta-editor ile eşleşen öğe sayfada gizlenir ve kullanıcının etkileşimde bulunduğu öğe değildir. Capybara tarafından, bir kullanıcının etkileşime gireceği öğelerle etkileşime girmeniz gerekir. Bu nedenle, #set numaralı telefonu arayarak, etkileşim kurmaya çalıştığınız öğeye önceki eş olan görünür öğeye ve div[contenteditable] ile eşleşmeniz gerekir. Eğer HTML görünmüyor ama umarım bunu yapabileceğiniz Sizin kapsamı yapabilirsiniz içeren öğesi

find('<container_selector> div[contenteditable]').set(...) 

veya

find('<more_general_container_selector>', text: '<label text or something else in the container>').find('div[contenteditable]').set(....) 

sayfada yalnızca alanın bu tip birine sahipseniz muhtemelen

find('.text-angular div[contenteditable]').set('Upgraded to SSD') 

not kurtulabiliriz: o sadece Insi oluşturulan olsun çocuklarla ana contenteditable elemanı ile etkileşime ve olamayacağını bir sınırlama vardır selenyum sürücüsü kullanılıyorsa, de öyle. Diğer capybara sürücülerinin aynı sorunu olup olmadığından emin değilim.

+0

Tom parlak ve temiz bir çözüm. Capybara/Selenium'u kullanarak metni ayarlamak için kullanabildi: find ('div.ta-text.ta-editor div [contenteditable]'). Set ("SSD'ye Yükseltildi") – orion