2015-07-06 17 views
10

.Image türünde ve XCUIElement sınıfında bir değişkenim var. Böyle bir şey:XCUIElement - Görüntü değerini alın

var image = app.descendantsMatchingType(.Image).elementAtIndex(0)

ben başka bir resme karşılaştırabilirsiniz yüzden gerçek görüntü elde edebilirsiniz bir yolu var mı?

value yöntemini aramayı denedim, ancak bir dize döndürdü. UIImage'a dökmek her zaman başarısız olur.

cevap

15

Bu konuda son zamanlarda Apple Developer Tools evangelist ile bir konuşma yaptım. Şu anda gerçek görüntüye bir görüntü görünümünden, düğmesinden vb. Erişmenin bir yolu yoktur. Benzer şekilde, "isHidden" veya "attributedText" gibi ilgi alanlarına ait olabilecek diğer özelliklerin özelliklerine erişmenin de bir yolu yoktur. UI Test ekibindeki mühendislerin, insanların bu mülklere erişmek istedikleri kullanım durumları ile ilgilendiklerini, bu yüzden çok yararlı olacağını söyledi - hem onlar için hem de bu özelliği isteyen diğer insanlar için - https://bugreport.apple.com

Bir XCUIElement öğesindeki "value" özelliği ile ilgili bir ipucu olarak, en azından şimdilik XCUIElement referansı ne olursa olsun bu "accessibilityValue" özelliğinin eşlendiği anlaşılıyor. . Bu nedenle, bir görünümün erişilebilirliğini ayarladıysanız, doğrulamak istediğiniz bazı bilgileri içermekle ilgilenirsiniz, bu muhtemelen test edilmesinde yardımcı olabilir. Olması gereken iki şey:

1) Bir XCUIElement öğesinin "value" özelliği "id" türünde olsa da, accessibilityValue özelliğinin türü "NSString" dir. Eğer string olmayan bir değeri (bir resim gibi) accessibilityValue'a zorlamaya ve XCUIElement'in "value" özelliğinden geri almaya çalışırsanız ne olacağını bilmiyorum, ama iyi çalışmadığından şüpheleniyorum. Kısmen:

2) Bir görünümün erişilebilirlikValue özelliği, aslında, görme engelliler için Apple'ın VoiceOver özelliği tarafından kullanılır. Değer ayarlandığında, kullanıcı o elemanın üzerine dokunduğunda yüksek sesle okunur (bu yüzden bir dizge olması gerekir). http://www.danielhall.io/exploring-the-new-ui-testing-features-of-xcode-7

+0

Bu hemen hemen bugün itibariyle UI test çerçevenin sınırlarını özetler:

Ben de burada daha ayrıntılı olarak XCUIElement aracılığıyla görüş özelliklerine erişmek mümkün olmayan konuyu kaplı? Herhangi bir değeri sağlamak için onu gerçek dünyada kullandınız mı? – Petar

+2

@Petar Evet, sınırlar/desteklenmeyen durumlar şu anda benim için desteklenen vakalardan sayıca fazla görünüyor. Bilgiyi “bir son kullanıcıya nasıl görüneceği” ni açığa çıkarmak için erişilebilirliği kullanan temel yaklaşımın birçok açıdan iyi olduğunu düşünüyorum, ancak UIImage'a erişimin çok zor olduğu gibi şeyler yapmakta zorlanıyorum. Bana gelince, değeri olan bazı testler yazmak için kullandım, ama sonuçta, Kcode veya Calabash ile yapmam gerekiyor çünkü Xcode UITesting ile yazılmayan çok fazla test var ve ben Yüklenen ve korunan 2 farklı UITesting çerçevesine sahip olduğundan emin değilsiniz. –

+0

Evet, tam olarak. UIButton'un seçili olup olmadığını kontrol etmek için çok basit bir test yapmayı denedim: == YES'… ve yakında bunu yapamayacağımı anladım. Ardından ViewController'ımın ilgili görünümü gösterip göstermediğini görmek için bir test yapmak istedim (birkaçını değiştirebileceğim için) - yine mümkün değil. Umarım Apple, makalenizde bahsettiğiniz çerçeve ümit verici görünmektedir. UI testleri için Calabash'i tam olarak nasıl kullandığınızı sorabilir miyim?Teşekkürler – Petar

İlgili konular