私のテストの1つでは、CSS selector
を使用して要素を見つけています。
element(by.css("ul.nav button"))
クエリに一致する要素は複数ありますが、最初の要素だけが必要なので、セレクタで問題ありません。
問題は、protractor
が警告をスローすることです。
警告-ロケーターBy.cssSelector( "ul.nav button")に複数の要素が見つかりました-最初の結果が使用されます
警告を抑制することは可能ですか?言い換えれば、問題を認識しており、警告を表示したくないことをprotractor
にどのように知らせることができますか?
protractor
開発バージョン(masterブランチから直接インストール)を使用します。
代わりにこれを試してください:
element.all(by.css("ul.nav button")).first()
基本的に、これは分度器に複数の要素があることを既に知っていて、最初の要素だけが欲しいことを伝えます(質問で言ったように)。
警告には理由があります。テストとデータの結び付けが強すぎます。セレクタは一般的すぎるため、より具体的にする必要があります。 element(by.css("ul.nav button:nth-child(1)"))
と言うか、検索の範囲を変えることによって。分度器テストは、スタイルやdomをテストするものではなく、ビジネスロジックをテストするものです。
少ないコード:
$$("ul.nav button").first()