Prüft, ob ein Element für den Benutzer wirklich sichtbar ist

8

Ich möchte prüfen, ob der Benutzer ein Element in der aktuellen Webbrowseransicht sehen kann, ohne zu scrollen.

Was ich gefunden habe, kann prüfen, ob sich das Element irgendwo auf der Seite befindet.

Ein weiterer Hinweis schlug vor, die Position der Elemente zu überprüfen, aber dann müsste ich die Abmessungen des sichtbaren Fensters des Browsers plus seinen x / y Offset auf 0/0 .

Ich wäre dankbar, wenn mir jemand eine Lösung zeigen könnte, die keinen JavaScript-Code benötigt.

    
user1882216 06.12.2012, 11:58
quelle

1 Antwort

2

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 sein, die in .Displayed -Eigenschaft von Selenium zu verwenden (wenn Sie C # verwenden, Java hat etwas Ähnliches), und kombinieren Sie es mit dem 'sichtbaren' Selektor von jQuery: Ссылка . Beispiel unten, in C #.

%Vor%

Dies wird die Mehrheit der Fälle bekommen.

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 stark, dass es schön, lesbar oder zuverlässig sein wird.

jQuery hat die Methode offset() :

Ссылка

Dies wird jedoch nicht funktionieren, wenn Sie Grenzen, Ränder, diese Art von Sachen berücksichtigen.

    
Arran 06.12.2012 16:55
quelle