2017-07-04 20 views
0

Angular JSシングルページアプリケーションでは、uiルーターは、アプリケーションの状態に基づいてビューの内容(<ui-view></ui-view>)を変更するように構成されています。分度器シングルページアプリケーションテスト

分度器の変更されたビューのコンテンツ(ページ)をテストするにはどうすればよいですか?ページソースビューの実行中に、ビューの内容は表示されません。ページは正しくロードされていますが、分度器はページ要素を見つけることができません。 <ui-view></ui-view>

<div class="form-group"> 
<label for="firstName" class="ng-scope">First Name</label> 
<input type="text" id="firstName" name="firstName" ng-model="customer.firstName"> 
</div> 

分度器内部に入る

<head> 
    <title> Test Application</title> 
</head> 
<body> 
    <div class="wrapper"> 
     <div class="container"> 
      <ui-view></ui-view> 
     </div> 
    <div> 
<body> 

スニペットコードは、要素に by.model を見つけることができません。

describe('Protractor Demo App', function() { 
     browser.get('http://example.com');//url 
     it("Test..", function() { 
     element(by.model('customer.firstName')).sendKeys('FIRSTNAME'); 
     element(by.model('customer.lastName')).sendKeys('LASTNAME'); 
     }); 
    }); 
+0

たとえば、Chromeでdev-toolsを使用すると、 ''に挿入されているhtmlが表示されます。また、dev-toolsからここにコードを貼り付けることもできますあなたの質問で? – wswebcreation

+0

分度器テストのコードを含めてください – Acid

答えて

0

要素がロードされる前に要素を探していて、欠落している可能性があります。 protractor.ExpectedConditionsをお試しください。たとえば:

describe('Protractor Demo App', function() { 
    browser.get('http://example.com'); 
    it("Test..", function() { 
     var el = element(by.css('.form-group')); 
     var EC = protractor.ExpectedConditions; 
     browser.wait(EC.presenceOf(el), 10000).then(function(){ 
      element(by.model('customer.firstName')).sendKeys('FIRSTNAME'); 
      element(by.model('customer.lastName')).sendKeys('LASTNAME'); 
     }); 
    }); 
}); 

ここでは、入力に記入しようとする前に、ページ上に存在することが.form-group divのための10秒の最大をお待ちしております。

+0

スタック: ElementNotVisibleError:要素が表示されません – user2263197

+0

これらの要素のページの大きさはどれくらいですか?分度器がおそらくそれを探しているときに、要素がビューポートにないほど十分に大きいのですか? –