2015-08-07 6 views
21

Nie bardzo rozumiem, do czego służą polecenia $ i $$. Myślałem, że są one tylko zamiennikiem dla "by.css", ale dlaczego $$?

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

Myślałem, że biorąc pod uwagę powyższe, to byłoby równoważne:

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

i

element($('#eId')); 

Jednak pierwszy z nich działa, a drugi nie. Dlaczego, jaka jest różnica między tymi trzema?

The docs są mało pomocne. Wydaje się, że sugerują, że "$" służy tylko do łączenia, np. element(by.css('#eId')).element($('#childId')); lub "Wybierz pierwszy element, a następnie wybierz drugi element w pierwszym elemencie." Jednak widziałem przykłady, w których $ został użyty do wybrania pierwszego elementu.

W każdym razie, jest to dużo tekstu dla "Jakie są różnice między tymi trzema (o.css, $ i $$)?"

+1

Widziałem to, ponieważ miało "bling bling" w tytule lol :) – gerl

+2

Po prostu trzymaj to gangsta yo. W każdym razie, najwyraźniej "bling bling" jest rzeczywistym pseudonimem skrótu "$$", czytając inne posty tutaj. Ponadto, jeśli dobrze rozumiem, nie możesz wyszukiwać wpisów/google przy użyciu takich symboli, jak "$" lub "#", itp., Więc podałem pseudonim w nazwie. – VSO

+0

Dostaję cię. Wszystko dobrze w "kapturze". : D – gerl

Odpowiedz

21

$ i $$ są po prostu wygodne skróty.

$("selector") jest alternatywą dla element(by.css("selector")).

$$("selector") jest alternatywą dla element.all(by.css("selector")).


FYI, cytat z source code:

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

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

A actual commit że początkowo tak się stało.

+0

Jasne i zwięzłe, dzięki. Mam zarówno $, jak i $$ do pracy. Sądzę, że myliłem się z powodu podstaw. Robiłem element. $() Zamiast tylko $(). Dzięki. Lol, wydaje mi się, że jeśli nie uda mi się napisać skryptów, zbudujemy bazę danych o kątomierzach. – VSO