2015-02-11 20 views
20

uyarı "Birden fazla öğesi bulucu için bulunan" bir CSS selector:, ben kullanan bir eleman bulma ediyorum benim Testlerin birinde

element(by.css("ul.nav button")) 

Orada sorgu birden fazla eşleşen unsurdur, ancak günümüze dek sadece birinciye ihtiyacım var, seçici ile iyiyim.

sorun, protractor bir uyarı atar:

DİKKAT - bulucu By.cssSelector ("ul.nav düğmesi") Bulunan birden fazla elemanı - Birinci sonuç kullanılacak

Uyarıyı bastırmak mümkün mü? Başka bir deyişle, protractor'un sorunun farkında olduğunu ve uyarının gösterilmesini istemediğimi nasıl anlarım?


(ana daldan doğrudan yüklenir) protractor geliştirme sürümünü kullanma. (Eğer söz söylediği gibi)

element.all(by.css("ul.nav button")).first() 

Temelde, bu zaten birden fazla unsur olduğunu biliyorum Protractor söyler ve sadece birincisini istiyorum:

cevap

37

yerine bu deneyin.

+0

! Bir ikramiye ve meraktan dolayı, uyarıyı, herhangi bir fikri susturmanın mümkün olup olmadığını bilmek faydalı olabilir mi? Teşekkürler. – alecxe

+2

Eğer bir tane varsa, [burada] (https://github.com/angular/protractor/blob/master/docs/referenceConf.js) olacaktır. Yine de böyle bir şey görmüyorum ve bunun sebebi, spesifik olmayan konumlandırıcıların çok hassas testler yapmasıdır. –

+0

Evet, korkarım sadece uygun bir 'logLevel 'ayarlayarak kapatabilirim; Ama son noktanız konusunda tamamen katılıyorum, bana mantıklı geliyor. Yardım için tekrardan teşekkürler. – alecxe

6

Bir sebepten dolayı uyarı var. Testlerinizi verilerinize çok yakın bir şekilde bağladınız. Seçici çok genel & daha spesifik olmalısınız. Ya da element(by.css("ul.nav button:nth-child(1)")) söyleyerek veya aramanızı farklı bir şekilde belirterek. İletki testlerinin test tarzı veya dom olması gerekmiyor, iş mantığını test etmeleri gerekiyordu.

+0

İyi puanlar, katılım için teşekkürler! – alecxe

+0

Uzun süre düşündükten sonra, bu cevabı reddediyorum çünkü: 1) OP'ye karşı, bu sorunun sadeliği göz önüne alındığında, tamamen yersizdir; 2) Verilen çözüm, işe yarayabilse de, bu soruda belirtilmeyen bir DOM yapısına bağlıdır; 3) cevap, verilen çözümün OP'nin kodu üzerinde belirli avantajlara sahip olduğunu iddia eder, ancak gerçekte bu avantajlara sahip değildir; ve 4) kod örneğinin dışında, cevap, sekasit olmayanlardan ve vaazdan daha az miktardadır. –

0

Az kod: çalışır

$$("ul.nav button").first()