web-dev-qa-db-ja.com

SeleniumのisDisplayed()vs isVisible()

SeleniumのisDisplayed()メソッドとisVisible()メソッドの違いは何ですか?どちらも、Web要素がWebページで非表示になっているかどうかを識別するために使用されます。

10
MrNolan

簡単な答えは、isVisibleは古い_Selenium RC_のメソッドであり、isDisplayedはSelenium 2のメソッドです。

WebDriversWebElement について話している場合は、isDisplayed()メソッドのみが含まれています。

この要素は表示されますか?このメソッドは、要素の「スタイル」属性を解析する必要がある問題を回避します。

Webdriverの前には、Selenium RCがありましたが、これは長い間非推奨です。DefaultSeleniumクラスには、次のisVisible()メソッドがありました。

指定した要素が表示されるかどうかを決定します。要素は、CSSの「visibility」プロパティを「hidden」に、または「display」プロパティを「none」に設定することで、要素自体またはその祖先の場合に非表示にできます。要素が存在しない場合、このメソッドは失敗します。

参照

15
Erki M.

この投稿で説明されているように Selenium WebDriverのisDisplayed()メソッドの仕組み

WebDriverには独自の W3C仕様 があり、 可視性の決定 に関するセクションは、仕様からより多くの情報を提供します。

Selenium RC-isVisible()-表示を探します:スタイルタグなし-これは注意しないとヌルポインターをスローする可能性があるため...要素が表示されているかどうかを確認し、まずisElementPresent()メソッドを使用して要素が存在するかどうかを確認します。次に、要素が表示されているかどうかを確認してください!参照 Selenium RCのisElementPresentとisVisibleの違い

3
parishodak