ユーザーがスクロールせずに現在のWebブラウザービューで要素を表示できるかどうかを確認したいと思います。
私が見つけたものは、要素がページのどこかにあるかどうかを確認できます。
要素の位置を確認するための別のヒントが提案されましたが、ブラウザの表示ウィンドウのサイズに加えて、そのx/yオフセットを0/0に取得する必要があります。
誰かがJavaScriptコードを必要としない解決策を教えてくれたらありがたいです。
ユーザーがスクロールせずに現在のWebブラウザービューで要素を表示できるかどうかを確認したいと思います。
私が見つけたものは、要素がページのどこかにあるかどうかを確認できます。
要素の位置を確認するための別のヒントが提案されましたが、ブラウザの表示ウィンドウのサイズに加えて、そのx/yオフセットを0/0に取得する必要があります。
誰かがJavaScriptコードを必要としない解決策を教えてくれたらありがたいです。
「ユーザーに見える」をどのように定義しますか? どのようにそれをチェックすることを提案しますか? 高さがあれば?CSSで隠されていなければ?親要素が CSS によって隠されている場合はどうなりますか?
最も信頼できる方法は、Selenium の組み込み.Displayed
プロパティ (C# を使用している場合、Java にも同様のものがあります) を使用し、それを jQuery の「可視」セレクターhttp://api.jquery.com/visible-selector/と組み合わせることです。以下の C# の例。
var element = Driver.FindElement(By.Id("test"));
bool isVisible = element.Displayed;
var javascriptCapableDriver = (IJavascriptExecutor)Driver;
bool jQueryBelivesElementIsVisible = javascriptCapableDriver.ExecuteScript("return $('#myElement').is(:visible);");
bool elementIsVisible = isVisible && jQueryBelievesElementIsVisible;
これは、ほとんどの場合を取得します。
クライアント側のコードなしでは不可能です。または、他の誰かがサーバー側の言語で実行できる方法を見つける準備として、それがきれいで、読みやすく、信頼できるものになるとは思えません。
jQuery には次のoffset()
メソッドがあります。
ただし、境界線や余白などを考慮すると、これは機能しません。