2015-08-07 13 views
21

Gerçekten $ ve $$ komutlarının ne için olduğunu anlamıyorum. Ben sadece 'by.css' için bir yedek olduklarını düşündüm ama neden $$?

<element id = "eId"></element> 

düşündüğümden, yukarıda verilen bu eşdeğer olacaktır:

element(by.css('#eId')); 

ve

element($('#eId')); 

Ancak ilki çalışır ve ikinci yapmaz. Neden, üç arasındaki fark nedir?

docs çok az yardımcıdır. "$" Nin sadece zincirleme için olduğu anlamına gelir. element(by.css('#eId')).element($('#childId')); veya "İlk elemanı seçin ve ardından ilk elemanın içindeki ikinci elemanı seçin." Ancak, ilk öğeyi seçmek için kullanılan $ ile örnekler gördüm:

Neyse, "Üç (.css, $ ve $$) arasındaki farklar nelerdir?"

+1

Bunu izledim çünkü çünkü "bling bling" başlığında lol vardı :) – gerl

+2

Sadece keeper it gangsta yo. Neyse, görünüşe göre 'bling bling', '$$' kısayolu için gerçek bir takma addır. Ayrıca, doğru şekilde anlarsam, gönderileri/google'ı "$" veya "#" gibi sembollerle arayamazsınız, böylece takma adın adını ekledim. – VSO

+0

Seni yakalarım. Her şey kaputta iyi. : D – gerl

cevap

21

$ ve $$ sadece kullanışlı kısayolları.

$("selector")element(by.css("selector")) için bir alternatiftir.

$$("selector")element.all(by.css("selector")) için bir alternatiftir.


Bilginize, source code alıntı:

ElementFinder.prototype.$ = function(selector) { 
    return this.element(webdriver.By.css(selector)); 
}; 

ElementArrayFinder.prototype.$$ = function(selector) { 
    return this.all(webdriver.By.css(selector)); 
}; 

Ve başlangıçta ne yaptı actual commit.

+0

Net ve özlü, teşekkürler. Çalışmak için hem $ hem de $$ var. Sanırım kendimi temeller üzerinde kafa karıştırıyordum. Ben sadece $() yerine elementi $() yapıyordum. Teşekkürler. Lol, yazı yazarken başarısız olursam burada bir iletki temelleri veritabanı oluşturacağımızı düşünüyorum. – VSO