2017-07-27 3 views
0

Wenn ich überprüfe, ob das Element vorhanden ist, funktioniert der Code gut, wenn ich überprüfe, dass Element kein Jasmine-Timeout ist.Jasmine-Timeout-Fehler beim Prüfen eines Elements erhalten ist nicht vorhanden unter Verwendung von Winkelmesser

var fee = $$('[ng-if="paymentDetails.responseObject[0].fee_amount > 0"]'); 
expect(fee.isPresent()).toBe(false); 

Fehler nachrichten-

Error: Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL. 

Stack: Fehler: Timeout - Async Rückruf wurde nicht innerhalb Timeout angegeben durch jasmine.DEFAULT_TIMEOUT_INTERVAL aufgerufen. Stack: bei onTimeout (timers.js: 386: 14) bei tryOnTimeout (timers.js: 250: 5) bei Timer.listOnTimeout (timers.js: 214: 5)

On config.js Datei i ahve die Jasmin Timeout für 60 Sek

exports.config = { 
seleniumAddress: 'http://localhost:4444/wd/hub', 
multiCapabilities: [ 
    { 
     browserName: 'chrome', 
     shardTestFiles: true, 
     maxInstances: 1, 
     chromeOptions: { 
      args: [ 
       '--disable-infobars', 
       '--disable-extensions', 
       'verbose', 
       'log-path=./reports/chromedriver.log' 
      ], 
      prefs: { 
       'profile.password_manager_enabled': false, 
       'credentials_enable_service': false, 
       'password_manager_enabled': false 
      } 
     } 
    }, 
    { 
     browserName: 'internet explorer', 
     platform: 'ANY', 
     version: '11' 
    } 
    ], 
    framework: 'jasmine2', 
     suites: { 
     em2_login: ['e2e/tests/login/login.spec.js'] 
     } 
     useAllAngular2AppRoots: 'true', 
     allScriptsTimeout: 60000, 
     getPageTimeout: 60000, 

     jasmineNodeOpts: { 
     showColors: true, 
     displayStacktrace: true, 
     displaySpecDuration: true, 
     defaultTimeoutInterval: 60000, 
     disableChecks: true 
     }, 
     params: { 
     siteUrl: '' 
     }, 
     onPrepare: function() { 

     jasmine.DEFAULT_TIMEOUT_INTERVAL = 60000; 
     }, 
     }, 

habe ich versucht, durch browser.sleep(5000) und browser.waitforAngular() noch Timeouts eingesetzt wird.

Hier ist der HTML-Code für das Element mit den derzeitigen Staats

<tbody> 
<!-- ngRepeat: lineItem in paymentDetails.responseObject[0].schedules[0].schedule_line_items track by $index --> 
<tr class="ng-scope" ng-repeat="lineItem in paymentDetails.responseObject[0].schedules[0].schedule_line_items track by $index"> 
<td class="ng-binding">Jul 27, 2017</td> 
<td> 
<td class="ng-binding">$45.00</td> 
<!-- ngIf: paymentDetails.responseObject[0].fee_amount > 0 --> 
<td class="ng-binding ng-scope" ng-if="paymentDetails.responseObject[0].fee_amount > 0">$0.90</td> 
<!-- end ngIf: paymentDetails.responseObject[0].fee_amount > 0 --> 
<td> 
<td class="" ng-switch="" on="lineItem.statusString" ng-show="lineItem.statusString" style=""> 
<td class="ng-binding ng-hide" ng-show="!lineItem.statusString" ng-bind-html="receiptTemplate.ready" style="">Ready</td> 
<td class="ng-binding" ng-show="lineItem.authorizationString" ng-bind-html="lineItem.authorizationString" style="">53433 Bogus Gateway: Forced success</td> 
<td class="ng-hide" ng-show="!lineItem.authorizationString" style=""/> 
<td> 
</tr> 

Kann mir jemand helfen, auf diesem bitte?

+0

Können Sie bitte die vollständige Datei 'conf.js' posten. Vielen Dank! – demouser123

+0

Habe die komplette Datei conf.js gepostet. – Smitha

Antwort

0

Dieser Code funktionierte für mich.

var fee = $$('[ng-if="paymentDetails.responseObject[0].fee_amount > 0"]').get(0); 
expect(fee.isPresent()).toBe(false); 
Verwandte Themen