2016-04-22 27 views
4

我已經看到了這樣的$('.selector')例子很多,我也用這個。那麼這個$變量呢。這是我從量角器docs得到的。

對$的調用可能被鏈接以查找父代中的元素。

在單獨使用$的文檔中沒有例子。我們使用$到鏈element選擇。

$('.selector')本身是一個元素,當我們這樣做element($('.selector')),這是一個錯誤。

因此,如何在量角器使用此$選擇。它是否具有JQuery $的所有功能?我試過$('.selector').children其中說children不是一個函數。

任何幫助,非常感謝。

謝謝!

+0

$代表jQuery。所以'$(「。選擇器」)'意味着所有具有類作爲選擇器的元素。 –

+0

請參閱:[angular.element](https://docs.angularjs.org/api/ng/function/angular.element) Angular的內置子集jQuery => jqLit​​e –

+0

使用angular.element而不是$,它僅作用於指令的部分文檔而不是整個html文檔 – UKoehler

回答

7

看起來如jQuery語法,但它不是,它的量角器的一部分。這就是爲什麼.children拋出一個錯誤,因爲我們實際上並沒有使用jQuery。 $element(by.css())

$('my-css');缺兵少將的版本是完全相同的element(by.css('my-css'));

他們也有$$這是一樣的element.all(by.css())

儘管缺少文檔,它有用於鏈接查找子元素時使用。即使用朱莉的量角器演示(我修改了示例):

describe('Protractor Demo App', function() { 
    it('read the header', function() { 
    browser.get('http://juliemr.github.io/protractor-demo/'); 
    $('h3').getText().then(function (val) { 
     console.log(val); 
    }); 
    }); 
}); 

打印出我找到的h3元素的標題。該$$$只是對CSS選擇器的簡寫。

來源:here for $$here for $,並here for more

而且這是一個很好的文件,我發現(雖然它並沒有提到使用$$http://luxiyalu.com/protractor-locators-selectors/

+0

感謝您指出'$('my-css')'與'element(by.css('my-css'))'相同,這在文檔中沒有提及。 – Wishnu

+2

是由於某些原因,沒有記錄在Protractor API上 - 這裏只提到一次:https://github.com/angular/protractor/blob/master/docs/locators.md – Gunderson

1

我們做了更新,量角器的API爲$。此外,在量角器的幾個地方使用鏈接$。見下文(從spec/async_spec.js):

it('should work with synchronous actions', function() { 
    var increment = $('#increment'); 
    increment.$('.action').click(); 

    expect(increment.$('.val').getText()).toEqual('1'); 
    });