私は素晴らしいフォントシンボルを持って保存ボタンであるdiv要素を持っています。div要素をクリックした後、新しいCSSクラスは、disabled
不透明度を視覚的にボタンのクリックを知らせるために減少した場合追加されます。イベントを保存した後disabled
CSSクラスが再び削除され、ボタンが再び完全に表示されています。私はセレンでこれを確認しようとすると単純にCSSクラスの追加と削除はセレン、IE用速すぎます
driver.findElement(By.cssSelector(".save-button")).click();
働いていると、ボタンを見つけ、それをクリックするが、次のfindはスローNoSuchElementException
:
driver.findElement(By.cssSelector(".save-button .disabled"));
これは、明示的な待機でもない(私は簡略化のためには言及しなかった)では動作しません。セレンは、第二の検索が開始される前、すなわちCSSクラスが削除され、変更を認識するためには遅すぎます。私は多分セレンのJavaScriptのソリューションを経由して、クリックイベントの前に開始したリスナーのようなものが必要なのでしょうか?その他のアプローチ?前待機をスレッドのように見えますがセレンでは不可能です。
セレンは(少なくともこのケースでは)遅すぎるではありませんが、CSSパラメータが間違っていました:
".save-button .disabled"
1つのスペースを入れて(階層内の2つの要素を意味し<div class="save-button"><div class="disabled"/></div>
、一方、".save-button.disabled"
正しいされているだろうし、実際に働いています。
私はクロームの検査官がそのタイトではないので、最初の場所で気付かなかったし、この理論的に間違ったパラメータでdivのを見つけました。
編集:JeffCのコメントで述べたように検査員が間違ったパラメータを持つ要素と一致したことを、詳細にはtrueにすることはできません。私は、このページからコメントのdivとそれを検証し、検査員は、ここでは一致していません。下のスクリーンショットを参照してください。私のSeleniumテストが現在取り組んでいるように私はこれをさらに分析しません。