要素がなくなるまで待ちたい
最近は画面遷移が行われないSPA(Single Page Application)が増えてきた気がしますが、画面遷移やSPAにおけるモーダル表示など、画面に要素が表示されたり消えたりするタイミングで、テストが不安定になりがちです。
最近は画面遷移が行われないSPA(Single Page Application)が増えてきた気がしますが、画面遷移やSPAにおけるモーダル表示など、画面に要素が表示されたり消えたりするタイミングで、テストが不安定になりがちです。
そのため、SeleniumだとImplicitly wait(明示的な待ち時間)で画面がロードされるのを待たせられますが、mablだと「Wait untilステップ」で「要素が表示されるまで待つ」ことができます。
参考: Adding wait and wait until steps
mablへの要望リストにも届いているのですが、「要素がなくなるまで待つ」は、mablでもまだできません。
代替案として、以下の2つがあります。
1. JS snippet を使う
あるテストで読込中のぐるぐるマークボタンが消えるまで待ちたいケースがあったため、以下のようなJS snippetを作成してみました。
参考: waitUntilLoadingImageDisappers
2. Xpath検索を使う
手元ではうまく待ちが効いているようなのでXpathを使った手段もご紹介です。
mablトレーナーでXpath検索をさせ、「IF count of all elements matching xpath "//button[@disabled]" equals 0」のようにIF文を入れます。
Xpath検索ではSeleniumのような待ちが固定秒数発生するようなので、「要素がなくなる = 要素が0になる」まで待たせるような処理にしています。
Updated over 2 years ago