1. ホーム
  2. angularjs

[解決済み] 分度器を使って元素が見えるかどうかを確認するには?

2022-10-28 14:28:25

質問

ある要素が表示されているかどうかを、protractor を使ってテストしようとしています。以下は、その要素がどのように見えるかです。

<i class="icon-spinner icon-spin ng-hide" ng-show="saving"></i>

クロームのコンソールで、このjQueryセレクタを使って、要素が表示されているかどうかをテストすることができます。

$('[ng-show=saving].icon-spin')
[
<i class=​"icon-spinner icon-spin ng-hide" ng-show=​"saving">​</i>​
]
> $('[ng-show=saving].icon-spin:visible')
[]

しかし、protractorで同じことをしようとすると、実行時にこのエラーが発生します。

InvalidElementStateError: 
invalid element state: Failed to execute 'querySelectorAll' on 'Document': 
'[ng-show=saving].icon-spin:visible' is not a valid selector.

なぜこれが有効でないのでしょうか?分度器を使って可視性を確認するにはどうしたらよいですか?

どのように解決するのですか?

これで解決するはずです。

expect($('[ng-show=saving].icon-spin').isDisplayed()).toBe(true);

リメンバー分度器の $ は jQuery ではないし :visible でも の一部です。 利用可能な CSS セレクタ + 擬似セレクタ

より詳しい情報は https://stackoverflow.com/a/13388700/511069