私はcucumberjsに問題があります。指定されたセレクターを持つ要素が DOM に表示されるようにする方法が見つかりません。Chaiでcucumberjsを使用しています。 https://github.com/cucumber/cucumber-js isPresent は、要素が存在するかどうかに関係なく、オブジェクトを返します。問題は、要素がDOMに存在するかどうかを確認する方法です。
質問を編集して、学んだ教訓を共有します。Nathan Thompson のおかげでドキュメントも読みました。isPresent() は、要素がページに存在するかどうかを解決する promise を返します。
http://angular.github.io/protractor/#/api?view=Protractor.prototype.isElementPresent
コード例は少し誤解を招きます。したがって、特定のセレクターを持つ要素がDOMに存在するかどうかを期待したい場合は、次のようなものを使用する必要があります:
element(by.id('someId')).isPresent().then(function(isElementVisible) {
expect(isElementVisible).to.be.true;
});
または、約束でチャイを使用します。
expect(element.isPresent()).to.eventually.be.false
しかし、「やがて」という言葉は不快に聞こえます。最終的には確実ではありません。:)
この質問に関する記事は、私の個人的なブログで見ることができます。