2017-09-28 5 views
0

私はいくつかのe2eテストを書いています。フォームを記入してカスタム選択ドロップダウンコンポーネントで項目を選択しようとすると、私のテストにはbrowser.sleep(...)を使用しなければなりません。テストは失敗します。なぜこうなった?角2e2eのprotactor:私がbrowser.sleep()を使用しないと、私のテストは失敗します。どうして?

これが作業テストです:

describe('...',() => { 
    it(`...`,() => { 
     page.navigateTo('/...').then(() => { 
      element(by.tagName('single-select-foo')).element(by.tagName('button')).click().then(() => { 
       element(by.tagName('single-select-foo')).all(by.css('.select-menu-item')).first().click(); 
      }); 

      browser.sleep(2000); 

      element(by.tagName('single-select-bar')).element(by.tagName('button')).click().then(() => { 
       element(by.tagName('single-select-bar')).all(by.css('.select-menu-item')).first().click(); 
      }); 
     }); 
    }); 
}); 

これは失敗テスト(削除browser.slepe(2000)ラインです:

describe('...',() => { 
    it(`...`,() => { 
     page.navigateTo('/...').then(() => { 
      element(by.tagName('single-select-foo')).element(by.tagName('button')).click().then(() => { 
       element(by.tagName('single-select-foo')).all(by.css('.select-menu-item')).first().click(); 
      }); 

      element(by.tagName('single-select-bar')).element(by.tagName('button')).click().then(() => { 
       element(by.tagName('single-select-bar')).all(by.css('.select-menu-item')).first().click(); 
      }); 
     }); 
    }); 
}); 

失敗テストは私にこのエラーを与える:

固定
  • Failed: unknown error: Element <button _ngcontent-c16="" class="btn btn--select" type="button">...</button> is not clickable at point (514, 439). Other element would receive the click: ... (Session info: chrome=61.0.3163.100) (Driver info: chromedriver=2.32.498537 (cb2f855cbc7b82e20387eaf9a43f6b99b6105061),platform=Mac OS X 10.12.5 x86_64)
+0

おそらく、睡眠はページのレンダリングを終了させ、分度器がまだ完全には存在しない要素とやり取りしようとしていない場合に起こります。私は一般的に他のプラットフォームでクロムドライバと同じ問題があります。 –

+0

@RoddyoftheFrozenPeasあなたはこれを書くより美しい方法を知っていますか?私が聞くことができる何かの約束や何かが、予期せぬ 'browser.sleep()'の代わりに一緒に連鎖するようなものでしょうか? – Lansana

答えて

0

これはコード内の特定のエラーを実際に回避することによって実現されます。browser.wait(until.elementToBeClickable(...))のエラーbuttonの要素とエラーが解決されました。エラーは、エラーが発生した時点でボタンがクリック可能ではないと述べたためです。

関連する問題