2014-07-15 28 views
1

根據該文檔,存在選擇的元件非常精確地ProtractorBy.prototype.exactBinding量角器:您可以選擇一個不包含在元素中的綁定嗎?

使在

<span>{{ person.name }}</span> 

的情況下可以成功地測試等)稱爲by.exactBinding(方法:

expect(element(by.exactBinding('person.name')).isPresent()).toBe(true); 
expect(element(by.exactBinding('person')).isPresent()).toBe(false); 

然而,但怎麼樣,你必須綁定一個像這樣的情況:

<div>Showing {{foo.foo}} of {{foo.bar}}</div> 

在這種情況下,即使你使用exactBinding()選擇和型號分別爲1和2:

expect(element(by.exactBinding('foo.foo')).getText()).toEqual('1'); 

該測試總是失敗,因爲這個選擇的gettext的()值:

element(by.exactBinding('foo.foo')) 

實際上是「顯示1的2」,而不僅僅是我想要的「1」。

一個快速和骯髒的方式來解決這個問題。將每個包裹中的元素像這樣綁定:

<div>Showing <span>{{foo.foo}}</span> of <span>{{foo.bar}}</span></div> 

的正常工作,但這是額外的無用的標記!我找不到任何其他方式來選擇。使用ng-bind將綁定轉換爲元素也是可行的,但是它與修補程序一樣髒。所以問題是,有沒有辦法只選擇綁定?沒有添加無用的標記到我的網頁?這將是非常有用的...

回答

1

我認爲你不能,這個想法是作爲找到元素的定位器,所以如果它不是一個元素,你將無法獲得,你可以得到圍繞使用.toMatch(),所以它會嘗試找到至少一個結果,否則你必須說這將等於所有預期的文本「顯示1的2」。

相關問題