テスト中に無効なツールチップやその他のエラー メッセージがないかサイトをチェックして、問題がないことを確認する必要があります。問題は、セレンがこれらの要素を見つけるのに永遠にかかるように見え、タイマーに設定されているため、セレンがそれらを見つける前に消える時間が時々あることです.3秒のタイマーについて話している.
今、私はそれらを次のように見つけました:
List<WebElement> error = driver.findElements(By.cssSelector("div.alert .error"));
if (error.size() == 0) {return true;}
else {return false;}
これにより、特定の時間にサイトに表示されるすべてのエラー メッセージが検出されます。ツールチップは JavaScript で作成および破棄されるため、非表示になってから表示されることはありません。これについて何か考えはありますか?
編集:
このサイトは単一のページであるため、適切なページを見つけるために通過する要素は膨大な量になりますが、実際に表示可能なアイテムを探すときは高速であるため、検索を最小限に抑えるために次のようにしました。
WebElement messages = driver.findElement(By.id("the-div-the-message-is-created-in"));
List<WebElement> error = messages.findElements(By.cssSelector("div.alert .error"));
if (error.size() == 0) {return true;}
else {return false;}
ただし、要素の存在をより速く確認しているようには見えませんでした。