Wie definieren Sie "für den Benutzer sichtbar"? Wie schlagen Sie vor, es zu überprüfen? Wenn es eine Höhe hat? Wenn es nicht von CSS versteckt ist? Was ist, wenn das Elternelement von CSS versteckt ist?
Der zuverlässigste Weg wird in .Displayed
Eigenschaft gebaut verwendet Selen ist (wenn Sie C# verwenden, Java hat etwas ähnlich), und kombiniert es mit jQuery ‚sichtbar‘ Selektor: http://api.jquery.com/visible-selector/. Beispiel unten in 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;
Dies wird die Mehrheit der Fälle erhalten.
Es ist nicht möglich, ohne clientseitigen Code, oder in der Vorbereitung, dass jemand anders einen Weg findet, dass es in einer serverseitigen Sprache getan werden kann, ich bezweifle sehr, dass es schön, lesbar oder zuverlässig ist.
jQuery hat die offset()
Methode:
http://api.jquery.com/offset/
Dies wird jedoch nicht funktionieren, wenn Berücksichtigung Grenzen nehmen, Margen, solche Sachen.
Leider kein Weg ohne JavaScript. Warum willst du das überhaupt nicht? Hilft etwas von [hier] (http://stackoverflow.com/questions/704758/how-to-check-if-an-element-is-really-visible-with-javascript)? –
@Slanec Zum Beispiel habe ich einen Fehler, wo aufgrund eines schlechten CSS eine Schaltfläche, die angeklickt werden muss, positioniert wird, zum Beispiel bei 110% Breite des Ansichtsfensters, und der Überlauf wird auf versteckt gesetzt. Also wird der Button NIEMALS Clickbale sein, nicht mit Scrollen oder Größenanpassung oder irgendetwas. Dies geschieht übrigens nur in IE11. Jetzt möchte ich einen Testfall, um zu überprüfen, ob die Schaltfläche sichtbar ist, um sie der Regression für das Produkt hinzuzufügen. Leider ist isDisplayed() für das Element wahr. – dmansfield
Ich überprüfe die Sichtbarkeit eines Elements mit Css, Z-Index. Ob ich die Sichtbarkeit eines Elements überprüfen kann, in der Rückschicht eines anderen Elements. – bcrajkumar