2015-04-03 25 views
3

我正在使用Protractor運行e2e測試,但無法使用getText()驗證元素的文本。量角器回報:在使用typeahead時使用getText()返回空字符串驗證元素

Expected '' to equal 'Joe Smith'. 

下面是代碼:

<span class="input-group" style="padding: 40px;"> 
<input tabindex="0" class="form-control ng-valid ng-dirty ng- 
valid-parse ng-touched" id="requesterSearchInput" aria-expanded="false" 
aria-invalid="false" aria-owns="typeahead-6604-1028" aria- 
autocomplete="list" type="text" placeholder="Enter a Requester name" ng- 
model="searchText" typeahead-loading="loadingLocations" typeahead-wait- 
ms="500" typeahead-min-length="1" typeahead-on- 
select="OnRequesterSelect($item)" typeahead-template- 
url="requesterTypeAheadTemplate.html" typeahead="rdata for rdatas in 
GetRequesters($viewValue)"></input> 

在我的測試腳本,我有:

element(by.id('requesterSearchInput')).click(); 
browser.actions().sendKeys('Joe Smith').perform(); 
expect(element(by.id('requesterSearchInput')).getText()).toEqual('Joe Smith'); 

但是最後一行失敗:

Expected '' to equal 'Joe Smith'. 

我已經多次嘗試解決這個問題沒有任何工作。這是我的嘗試:

嘗試1:

expect(element(by.id('requesterSearchInput')).getText()).toEqual('Joe Smith'); 

嘗試2:

expect(element(by.id('requesterSearchInput')).getAttribute("aria-hidden")).toEqual('Joe Smith'); 

嘗試3:

expect(element(by.id('requesterSearchInput')).getAttribute("innerText")). 
    toEqual('Joe Smith'); 

嘗試4:

var previousEntry = element(by.xpath("//div[@ng-hide='searchText']")) 
    .getAttribute("aria-hidden"); 
expect(previousEntry).toEqual('Masterson'); 

非常感謝您的幫助。

回答

2

從我的理解它是value屬性,你需要檢查:

expect(element(by.id('requesterSearchInput')).getAttribute('value')).toEqual('Joe Smith'); 
+0

好吧,我誤解了前面的例子中我看到了。我以爲我需要用屬性取代價值。我按照你的建議使用了它的價值,並且工作。謝謝! – Dawn 2015-04-03 18:01:32

相關問題